MultiTenantApp::define($company[$this->Company->alias]['id']);
//
$this->setSessionCompanyVariables($company, $companyDomain);
$this->setViewCompanyVariables($company, $companyDomain);
array( 'Company' => array( 'id' => '23', 'name' => 'Optiway', 'max_days_without_sync' => '30', 'catalog_expiration_days' => '45', 'email' => 'customerserviceoptiway@gmail.com', 'created' => '2019-03-21 11:42:35', 'modified' => '2022-09-15 15:15:34', 'active' => false, 'lang_iso' => 'es', 'catalog_disclaimer' => '', 'create_dispatch_note_after_close_order' => '0', 'image' => 'image_1652371838.JPG', 'image_dir' => '23', 'image_catalog_banner' => '', 'image_catalog_banner_dir' => '', 'product_stock_approach_id' => '1', 'phone' => '+54 9 11 6577-4356', 'google_analytics_tracking_id' => '', 'catalog_default_view' => '', 'url' => '', 'cellphone' => '+54 9 11 6577-4356', 'show_whatsapp_widget' => '1', 'show_stock_to_customers' => '0', 'default_customer_id' => null, 'catalog_pdf_type_id' => '1', 'max_cant_product_images' => '2', 'order_item_above_stock_action_id' => '0', 'color_hex_primary' => '000000', 'country_code' => 'AR', 'currency_code' => 'ARS' ), 'Module' => array( (int) 0 => array( 'id' => '1', 'name' => 'Remitos', 'description' => 'Permite generar múltiples remitos para cada pedido, indicando que item corresponde a que remito. Además permite crear despachantes, los que también estarán asociados a cada remito.', 'hidden' => true, 'CompanyModule' => array( 'id' => '188', 'company_id' => '23', 'module_id' => '1' ) ), (int) 1 => array( 'id' => '2', 'name' => 'Items de Pedidos Pendientes', 'description' => 'Permite indicar items pendientes dentro de un pedido. El sistema entiende por items pendientes a items que no fueron entregados dentro de un pedido, por lo que se asume una entrega parcial. Además se agregará una bandeja de items demorados, los cuales son almacenados de manera separada para mantenerse fuera del sistema hasta que luego se pueden reinsertar ya sea en su pedido original o en un pedido nuevo generado automáticamente.', 'hidden' => false, 'CompanyModule' => array( 'id' => '189', 'company_id' => '23', 'module_id' => '2' ) ), (int) 2 => array( 'id' => '7', 'name' => 'Stock', 'description' => 'Permite manejar el stock de los articulos.', 'hidden' => false, 'CompanyModule' => array( 'id' => '98', 'company_id' => '23', 'module_id' => '7' ) ), (int) 3 => array( 'id' => '10', 'name' => 'Pagos', 'description' => 'Permite agregar medios de pago para que los clientes puedan pagar sus pedidos.', 'hidden' => false, 'CompanyModule' => array( 'id' => '190', 'company_id' => '23', 'module_id' => '10' ) ), (int) 4 => array( 'id' => '11', 'name' => 'Envios', 'description' => 'Permite agregar formas de envios para que los clientes puedan elegir.', 'hidden' => false, 'CompanyModule' => array( 'id' => '191', 'company_id' => '23', 'module_id' => '11' ) ), (int) 5 => array( 'id' => '12', 'name' => 'Marcas', 'description' => 'Manejar Marcas en los articulos.', 'hidden' => false, 'CompanyModule' => array( 'id' => '247', 'company_id' => '23', 'module_id' => '12' ) ) ) ) array( 'CompanyDomain' => array( 'id' => '30', 'company_id' => '23', 'url_domain' => null, 'url_prefix' => 'Optiway', 'default_catalog_id' => '4143', 'default_logged_catalog_id' => '4143', 'customer_catalog_access_logic' => '2', 'default_customer_contacts_approval_approach_id' => '1', 'customer_group_id' => null, 'default_user_id' => null, 'registration_fields' => null, 'company_name' => null ) )
AuthComponent::$sessionKey = 'Auth.CustomerContact'; // solution from https://stackoverflow.com/questions/10538159/cakephp-auth-component-with-two-models-session
//proceso el subdomain
$this->_processSubdomain();
public function beforeFilter() {
parent::beforeFilter();
$this->Session->delete(ucfirst($this->request->controller) . '.' . $this->request->action . '.pagination');
}
//
parent::beforeFilter();
$this->Auth->allow("view", "cust_view", "cust_home", 'view_product', 'cust_view_product', "cust_instagram", "cust_category");
if ($listener['passParams'] === true) {
$result = call_user_func_array($listener['callable'], $event->data);
} else {
$result = call_user_func($listener['callable'], $event);
}
object(CakeEvent) { data => null result => null [protected] _name => 'Controller.initialize' [protected] _subject => object(CatalogsController) { uses => array( [maximum depth reached] ) components => array( [maximum depth reached] ) paginate => array( [maximum depth reached] ) helpers => array( [maximum depth reached] ) name => 'Catalogs' request => object(CakeRequest) {} response => object(CakeResponse) {} viewPath => 'Catalogs' layoutPath => null viewVars => array( [maximum depth reached] ) view => 'cust_view' layout => 'cust_default' autoRender => true autoLayout => true Components => object(ComponentCollection) {} viewClass => 'View' View => null ext => '.ctp' plugin => null cacheAction => false passedArgs => array( [maximum depth reached] ) scaffold => false methods => array( [maximum depth reached] ) modelClass => 'Catalog' modelKey => 'catalog' validationErrors => null Auth => object(AuthComponent) {} Session => object(SessionComponent) {} Cookie => object(CookieComponent) {} Acl => object(AclComponent) {} Flash => object(FlashComponent) {} Marketing => object(MarketingComponent) {} Catalogs => object(CatalogsComponent) {} TrackingEvent => object(TrackingEventComponent) {} Filter => object(FilterComponent) {} Time => object(TimeComponent) {} Carts => object(CartsComponent) {} Module => object(ModuleComponent) {} Csv => object(CsvComponent) {} Company => object(Company) {} CompanyDomain => object(CompanyDomain) {} [protected] _responseClass => 'CakeResponse' [protected] _mergeParent => 'AppController' [protected] _eventManager => object(CakeEventManager) {} } [protected] _stopped => false }
* @triggers Controller.startup $this
*/
public function startupProcess() {
$this->getEventManager()->dispatch(new CakeEvent('Controller.initialize', $this));
$this->getEventManager()->dispatch(new CakeEvent('Controller.startup', $this));
object(CakeEvent) { data => null result => null [protected] _name => 'Controller.initialize' [protected] _subject => object(CatalogsController) { uses => array( [maximum depth reached] ) components => array( [maximum depth reached] ) paginate => array( [maximum depth reached] ) helpers => array( [maximum depth reached] ) name => 'Catalogs' request => object(CakeRequest) {} response => object(CakeResponse) {} viewPath => 'Catalogs' layoutPath => null viewVars => array( [maximum depth reached] ) view => 'cust_view' layout => 'cust_default' autoRender => true autoLayout => true Components => object(ComponentCollection) {} viewClass => 'View' View => null ext => '.ctp' plugin => null cacheAction => false passedArgs => array( [maximum depth reached] ) scaffold => false methods => array( [maximum depth reached] ) modelClass => 'Catalog' modelKey => 'catalog' validationErrors => null Auth => object(AuthComponent) {} Session => object(SessionComponent) {} Cookie => object(CookieComponent) {} Acl => object(AclComponent) {} Flash => object(FlashComponent) {} Marketing => object(MarketingComponent) {} Catalogs => object(CatalogsComponent) {} TrackingEvent => object(TrackingEventComponent) {} Filter => object(FilterComponent) {} Time => object(TimeComponent) {} Carts => object(CartsComponent) {} Module => object(ModuleComponent) {} Csv => object(CsvComponent) {} Company => object(Company) {} CompanyDomain => object(CompanyDomain) {} [protected] _responseClass => 'CakeResponse' [protected] _mergeParent => 'AppController' [protected] _eventManager => object(CakeEventManager) {} } [protected] _stopped => false }
*/
protected function _invoke(Controller $controller, CakeRequest $request) {
$controller->constructClasses();
$controller->startupProcess();
));
}
$response = $this->_invoke($controller, $request);
if (isset($request->params['return'])) {
object(CatalogsController) { uses => array( (int) 0 => 'Catalog', (int) 1 => 'Product', (int) 2 => 'Customer', (int) 3 => 'ProductsCatalog', (int) 4 => 'ProductsCategory', (int) 5 => 'Category', (int) 6 => 'Company', (int) 7 => 'Discount', (int) 8 => 'LogSentCatalog', (int) 9 => 'Cart', (int) 10 => 'CartItem', (int) 11 => 'Attribute', (int) 12 => 'QuantityUom', (int) 13 => 'Notification', (int) 14 => 'CustomFilter', (int) 15 => 'CustomTemplate', (int) 16 => 'CompanyPaymentGateway', (int) 17 => 'CompanyDomain', (int) 18 => 'MarketingDisplaySection', (int) 19 => 'ProductBulkPrice', (int) 20 => 'Group', (int) 21 => 'User', (int) 22 => 'CustomerContact' ) components => array( 'Auth' => null, 'Session' => null, 'Cookie' => null, 'Acl' => null, 'Flash' => null, 'Marketing' => null, 'Catalogs' => null, 'TrackingEvent' => null, 'Filter' => array( 'fields' => array( [maximum depth reached] ) ), 'Time' => null, 'Carts' => null, 'Module' => null, 'Csv' => null ) paginate => array( 'Catalog' => array( 'contain' => array( [maximum depth reached] ), 'limit' => (int) 20, 'order' => array( [maximum depth reached] ) ), 'Product' => array( 'paramType' => 'querystring', 'fields' => array( [maximum depth reached] ), 'limit' => (int) 30, 'maxLimit' => (int) 1000, 'joins' => array( [maximum depth reached] ), 'group' => 'Product.id', 'order' => 'RPAD(COALESCE(GROUP_CONCAT(LPAD(`Category`.`priority_order_asc`,5,'-') ORDER BY `Category`.`priority_order_asc` ASC), 'Z'),15,'Z') ASC, -MIN(Product.priority_order_asc) DESC, GROUP_CONCAT(ProductsCategory.category_id), Product.reference ASC', 'replace_thumb' => true ), 'Customer' => array( 'limit' => (int) 20, 'order' => array( [maximum depth reached] ) ), 'LogSentCatalog' => array( 'contain' => array( [maximum depth reached] ), 'limit' => (int) 20, 'order' => array( [maximum depth reached] ) ) ) helpers => array( 'Html' => array( 'className' => 'MyHtml' ), (int) 0 => 'Localization', 'Number' => array( 'className' => 'MyNumber' ), 'Text' => array( 'className' => 'MyText' ), (int) 1 => 'Module', (int) 2 => 'TrackingEvent' ) name => 'Catalogs' request => object(CakeRequest) { params => array( [maximum depth reached] ) data => array([maximum depth reached]) query => array([maximum depth reached]) url => 'catalogo/202994' base => '' webroot => '/' here => '/catalogo/202994' [protected] _detectors => array( [maximum depth reached] ) [protected] _input => '' } response => object(CakeResponse) { [protected] _statusCodes => array( [maximum depth reached] ) [protected] _mimeTypes => array( [maximum depth reached] ) [protected] _protocol => 'HTTP/1.1' [protected] _status => (int) 200 [protected] _contentType => 'text/html' [protected] _headers => array([maximum depth reached]) [protected] _body => null [protected] _file => null [protected] _fileRange => null [protected] _charset => 'UTF-8' [protected] _cacheDirectives => array([maximum depth reached]) [protected] _cookies => array([maximum depth reached]) } viewPath => 'Catalogs' layoutPath => null viewVars => array( 'settings' => array() ) view => 'cust_view' layout => 'cust_default' autoRender => true autoLayout => true Components => object(ComponentCollection) { defaultPriority => (int) 10 [protected] _Controller => object(CatalogsController) {} [protected] _enabled => array( [maximum depth reached] ) [protected] _loaded => array( [maximum depth reached] ) } viewClass => 'View' View => null ext => '.ctp' plugin => null cacheAction => false passedArgs => array( (int) 0 => '202994' ) scaffold => false methods => array( (int) 1 => 'index', (int) 2 => 'detail', (int) 3 => 'detail_extra', (int) 4 => 'fix_token_redirects', (int) 5 => 'delete', (int) 6 => 'undelete', (int) 7 => 'download', (int) 8 => 'download_csv', (int) 9 => 'createPublicToken', (int) 10 => 'search_catalog', (int) 11 => 'view', (int) 12 => 'cust_home', (int) 13 => 'cust_category', (int) 14 => 'cust_view', (int) 15 => 'cust_instagram', (int) 18 => 'redefineTenantIfNecessary', (int) 19 => 'isCustomerRequest', (int) 20 => 'addCustomCss', (int) 21 => 'addPreloadImage', (int) 22 => 'setSessionCompanyVariables', (int) 23 => 'setViewCompanyVariables', (int) 24 => '_processSubdomain', (int) 25 => 'isAuthorized', (int) 26 => '_setLanguage', (int) 27 => 'getManifestFileRoute', (int) 28 => 'getOpenSearchRoute', (int) 29 => 'getRedirectTo', (int) 30 => '_makePublic', (int) 31 => 'verifyRecaptcha2', (int) 32 => 'verifyRecaptcha3', (int) 33 => 'checkCustomerGroupAllowed', (int) 34 => 'getLastQueries', (int) 35 => 'getLastQuery' ) modelClass => 'Catalog' modelKey => 'catalog' validationErrors => null Auth => object(AuthComponent) { components => array( [maximum depth reached] ) authenticate => array( [maximum depth reached] ) authorize => false ajaxLogin => null flash => array( [maximum depth reached] ) loginAction => array( [maximum depth reached] ) loginRedirect => null logoutRedirect => null authError => null unauthorizedRedirect => true allowedActions => array([maximum depth reached]) request => object(CakeRequest) {} response => object(CakeResponse) {} settings => array([maximum depth reached]) [protected] _authenticateObjects => array([maximum depth reached]) [protected] _authorizeObjects => array([maximum depth reached]) [protected] _user => array([maximum depth reached]) [protected] _methods => array( [maximum depth reached] ) [protected] _Collection => object(ComponentCollection) {} [protected] _componentMap => array( [maximum depth reached] ) } Session => object(SessionComponent) { settings => array([maximum depth reached]) components => array([maximum depth reached]) [protected] _Collection => object(ComponentCollection) {} [protected] _componentMap => array([maximum depth reached]) } Cookie => object(CookieComponent) { name => 'CakeCookie' time => null path => '/' domain => '' secure => false key => 'bFJ92mqs*&FXOw!sdrR@34SJv!@*(XSL#$%)MsGb$@11~_+!@#H123456' httpOnly => true settings => array([maximum depth reached]) components => array([maximum depth reached]) [protected] _values => array([maximum depth reached]) [protected] _type => 'cipher' [protected] _reset => null [protected] _expires => (int) 0 [protected] _response => object(CakeResponse) {} [protected] _Collection => object(ComponentCollection) {} [protected] _componentMap => array([maximum depth reached]) } Acl => object(AclComponent) { Aro => object(Aro) {} Aco => object(Aco) {} settings => array([maximum depth reached]) components => array([maximum depth reached]) [protected] _Instance => object(DbAcl) {} [protected] _Collection => object(ComponentCollection) {} [protected] _componentMap => array([maximum depth reached]) } Flash => object(FlashComponent) { settings => array([maximum depth reached]) components => array([maximum depth reached]) [protected] _defaultConfig => array( [maximum depth reached] ) [protected] _Collection => null [protected] _componentMap => array([maximum depth reached]) } Marketing => object(MarketingComponent) { settings => array([maximum depth reached]) components => array([maximum depth reached]) [protected] _Collection => object(ComponentCollection) {} [protected] _componentMap => array([maximum depth reached]) } Catalogs => object(CatalogsComponent) { settings => array([maximum depth reached]) components => array([maximum depth reached]) [protected] _Collection => object(ComponentCollection) {} [protected] _componentMap => array([maximum depth reached]) } TrackingEvent => object(TrackingEventComponent) { settings => array([maximum depth reached]) components => array([maximum depth reached]) [protected] _Collection => object(ComponentCollection) {} [protected] _componentMap => array([maximum depth reached]) } Filter => object(FilterComponent) { components => array( [maximum depth reached] ) fields => array( [maximum depth reached] ) clearParameters => 'clearFilters' settings => array( [maximum depth reached] ) [protected] _Collection => object(ComponentCollection) {} [protected] _componentMap => array( [maximum depth reached] ) } Time => object(TimeComponent) { fromFormat => 'd/m/Y' toFormat => 'Y-m-d' settings => array([maximum depth reached]) components => array([maximum depth reached]) [protected] _Collection => object(ComponentCollection) {} [protected] _componentMap => array([maximum depth reached]) } Carts => object(CartsComponent) { components => array( [maximum depth reached] ) settings => array([maximum depth reached]) [protected] _Collection => object(ComponentCollection) {} [protected] _componentMap => array( [maximum depth reached] ) } Module => object(ModuleComponent) { settings => array([maximum depth reached]) components => array([maximum depth reached]) [protected] _Collection => object(ComponentCollection) {} [protected] _componentMap => array([maximum depth reached]) } Csv => object(CsvComponent) { settings => array([maximum depth reached]) components => array([maximum depth reached]) [protected] _Collection => object(ComponentCollection) {} [protected] _componentMap => array([maximum depth reached]) } Company => object(Company) { actsAs => array( [maximum depth reached] ) hasMany => array( [maximum depth reached] ) hasAndBelongsToMany => array( [maximum depth reached] ) validate => array( [maximum depth reached] ) recursive => (int) -1 useDbConfig => 'default' useTable => 'companies' id => false data => array([maximum depth reached]) schemaName => 'smartycart' table => 'companies' primaryKey => 'id' validationErrors => array([maximum depth reached]) validationDomain => null tablePrefix => '' plugin => null name => 'Company' alias => 'Company' tableToModel => array( [maximum depth reached] ) cacheQueries => false belongsTo => array([maximum depth reached]) hasOne => array([maximum depth reached]) Behaviors => object(BehaviorCollection) {} whitelist => array([maximum depth reached]) cacheSources => true findQueryType => null order => null virtualFields => array([maximum depth reached]) __backAssociation => array([maximum depth reached]) __backInnerAssociation => array([maximum depth reached]) __backOriginalAssociation => array([maximum depth reached]) __backContainableAssociation => array([maximum depth reached]) __safeUpdateMode => false useConsistentAfterFind => true findMethods => array( [maximum depth reached] ) Module => object(Module) {} CompanyModule => object(CompanyModule) {} [protected] _schema => array( [maximum depth reached] ) [protected] _associationKeys => array( [maximum depth reached] ) [protected] _associations => array( [maximum depth reached] ) [protected] _insertID => null [protected] _sourceConfigured => true [protected] _eventManager => object(CakeEventManager) {} [protected] _validator => null } CompanyDomain => object(CompanyDomain) { actsAs => array( [maximum depth reached] ) belongsTo => array( [maximum depth reached] ) validate => array( [maximum depth reached] ) recursive => (int) -1 useDbConfig => 'default' useTable => 'company_domains' id => false data => array([maximum depth reached]) schemaName => 'smartycart' table => 'company_domains' primaryKey => 'id' validationErrors => array([maximum depth reached]) validationDomain => null tablePrefix => '' plugin => null name => 'CompanyDomain' alias => 'CompanyDomain' tableToModel => array( [maximum depth reached] ) cacheQueries => false hasOne => array([maximum depth reached]) hasMany => array([maximum depth reached]) hasAndBelongsToMany => array([maximum depth reached]) Behaviors => object(BehaviorCollection) {} whitelist => array([maximum depth reached]) cacheSources => true findQueryType => null order => null virtualFields => array([maximum depth reached]) __backAssociation => array([maximum depth reached]) __backInnerAssociation => array([maximum depth reached]) __backOriginalAssociation => array([maximum depth reached]) __backContainableAssociation => array([maximum depth reached]) __safeUpdateMode => false useConsistentAfterFind => true findMethods => array( [maximum depth reached] ) [protected] _schema => array( [maximum depth reached] ) [protected] _associationKeys => array( [maximum depth reached] ) [protected] _associations => array( [maximum depth reached] ) [protected] _insertID => null [protected] _sourceConfigured => true [protected] _eventManager => object(CakeEventManager) {} [protected] _validator => null } [protected] _responseClass => 'CakeResponse' [protected] _mergeParent => 'AppController' [protected] _eventManager => object(CakeEventManager) { [protected] _generalManager => object(CakeEventManager) {} [protected] _listeners => array( [maximum depth reached] ) [protected] _isGlobal => false } } object(CakeRequest) { params => array( 'plugin' => null, 'controller' => 'Catalogs', 'action' => 'cust_view', 'named' => array(), 'pass' => array( (int) 0 => '202994' ), 'prefix' => 'cust', 'cust' => true, 'models' => array( 'Group' => array( [maximum depth reached] ), 'User' => array( [maximum depth reached] ), 'Company' => array( [maximum depth reached] ), 'CompanyDomain' => array( [maximum depth reached] ), 'CustomerContact' => array( [maximum depth reached] ), 'Notification' => array( [maximum depth reached] ), 'Catalog' => array( [maximum depth reached] ), 'Customer' => array( [maximum depth reached] ), 'Permission' => array( [maximum depth reached] ), 'Aro' => array( [maximum depth reached] ), 'Aco' => array( [maximum depth reached] ), 'Module' => array( [maximum depth reached] ), 'CompanyModule' => array( [maximum depth reached] ) ) ) data => array() query => array() url => 'catalogo/202994' base => '' webroot => '/' here => '/catalogo/202994' [protected] _detectors => array( 'get' => array( 'env' => 'REQUEST_METHOD', 'value' => 'GET' ), 'patch' => array( 'env' => 'REQUEST_METHOD', 'value' => 'PATCH' ), 'post' => array( 'env' => 'REQUEST_METHOD', 'value' => 'POST' ), 'put' => array( 'env' => 'REQUEST_METHOD', 'value' => 'PUT' ), 'delete' => array( 'env' => 'REQUEST_METHOD', 'value' => 'DELETE' ), 'head' => array( 'env' => 'REQUEST_METHOD', 'value' => 'HEAD' ), 'options' => array( 'env' => 'REQUEST_METHOD', 'value' => 'OPTIONS' ), 'ssl' => array( 'env' => 'HTTPS', 'value' => (int) 1 ), 'ajax' => array( 'env' => 'HTTP_X_REQUESTED_WITH', 'value' => 'XMLHttpRequest' ), 'flash' => array( 'env' => 'HTTP_USER_AGENT', 'pattern' => '/^(Shockwave|Adobe) Flash/' ), 'mobile' => array( 'env' => 'HTTP_USER_AGENT', 'options' => array( [maximum depth reached] ) ), 'requested' => array( 'param' => 'requested', 'value' => (int) 1 ), 'json' => array( 'accept' => array( [maximum depth reached] ), 'param' => 'ext', 'value' => 'json' ), 'xml' => array( 'accept' => array( [maximum depth reached] ), 'param' => 'ext', 'value' => 'xml' ) ) [protected] _input => '' }
$Dispatcher = new Dispatcher();
$Dispatcher->dispatch(
new CakeRequest(),
new CakeResponse()
);
object(CakeRequest) { params => array( 'plugin' => null, 'controller' => 'Catalogs', 'action' => 'cust_view', 'named' => array(), 'pass' => array( (int) 0 => '202994' ), 'prefix' => 'cust', 'cust' => true, 'models' => array( 'Group' => array( [maximum depth reached] ), 'User' => array( [maximum depth reached] ), 'Company' => array( [maximum depth reached] ), 'CompanyDomain' => array( [maximum depth reached] ), 'CustomerContact' => array( [maximum depth reached] ), 'Notification' => array( [maximum depth reached] ), 'Catalog' => array( [maximum depth reached] ), 'Customer' => array( [maximum depth reached] ), 'Permission' => array( [maximum depth reached] ), 'Aro' => array( [maximum depth reached] ), 'Aco' => array( [maximum depth reached] ), 'Module' => array( [maximum depth reached] ), 'CompanyModule' => array( [maximum depth reached] ) ) ) data => array() query => array() url => 'catalogo/202994' base => '' webroot => '/' here => '/catalogo/202994' [protected] _detectors => array( 'get' => array( 'env' => 'REQUEST_METHOD', 'value' => 'GET' ), 'patch' => array( 'env' => 'REQUEST_METHOD', 'value' => 'PATCH' ), 'post' => array( 'env' => 'REQUEST_METHOD', 'value' => 'POST' ), 'put' => array( 'env' => 'REQUEST_METHOD', 'value' => 'PUT' ), 'delete' => array( 'env' => 'REQUEST_METHOD', 'value' => 'DELETE' ), 'head' => array( 'env' => 'REQUEST_METHOD', 'value' => 'HEAD' ), 'options' => array( 'env' => 'REQUEST_METHOD', 'value' => 'OPTIONS' ), 'ssl' => array( 'env' => 'HTTPS', 'value' => (int) 1 ), 'ajax' => array( 'env' => 'HTTP_X_REQUESTED_WITH', 'value' => 'XMLHttpRequest' ), 'flash' => array( 'env' => 'HTTP_USER_AGENT', 'pattern' => '/^(Shockwave|Adobe) Flash/' ), 'mobile' => array( 'env' => 'HTTP_USER_AGENT', 'options' => array( [maximum depth reached] ) ), 'requested' => array( 'param' => 'requested', 'value' => (int) 1 ), 'json' => array( 'accept' => array( [maximum depth reached] ), 'param' => 'ext', 'value' => 'json' ), 'xml' => array( 'accept' => array( [maximum depth reached] ), 'param' => 'ext', 'value' => 'xml' ) ) [protected] _input => '' } object(CakeResponse) { [protected] _statusCodes => array( (int) 100 => 'Continue', (int) 101 => 'Switching Protocols', (int) 200 => 'OK', (int) 201 => 'Created', (int) 202 => 'Accepted', (int) 203 => 'Non-Authoritative Information', (int) 204 => 'No Content', (int) 205 => 'Reset Content', (int) 206 => 'Partial Content', (int) 300 => 'Multiple Choices', (int) 301 => 'Moved Permanently', (int) 302 => 'Found', (int) 303 => 'See Other', (int) 304 => 'Not Modified', (int) 305 => 'Use Proxy', (int) 307 => 'Temporary Redirect', (int) 400 => 'Bad Request', (int) 401 => 'Unauthorized', (int) 402 => 'Payment Required', (int) 403 => 'Forbidden', (int) 404 => 'Not Found', (int) 405 => 'Method Not Allowed', (int) 406 => 'Not Acceptable', (int) 407 => 'Proxy Authentication Required', (int) 408 => 'Request Time-out', (int) 409 => 'Conflict', (int) 410 => 'Gone', (int) 411 => 'Length Required', (int) 412 => 'Precondition Failed', (int) 413 => 'Request Entity Too Large', (int) 414 => 'Request-URI Too Large', (int) 415 => 'Unsupported Media Type', (int) 416 => 'Requested range not satisfiable', (int) 417 => 'Expectation Failed', (int) 429 => 'Too Many Requests', (int) 500 => 'Internal Server Error', (int) 501 => 'Not Implemented', (int) 502 => 'Bad Gateway', (int) 503 => 'Service Unavailable', (int) 504 => 'Gateway Time-out', (int) 505 => 'Unsupported Version' ) [protected] _mimeTypes => array( 'html' => array( (int) 0 => 'text/html', (int) 1 => '*/*' ), 'json' => 'application/json', 'xml' => array( (int) 0 => 'application/xml', (int) 1 => 'text/xml' ), 'rss' => 'application/rss+xml', 'ai' => 'application/postscript', 'bcpio' => 'application/x-bcpio', 'bin' => 'application/octet-stream', 'ccad' => 'application/clariscad', 'cdf' => 'application/x-netcdf', 'class' => 'application/octet-stream', 'cpio' => 'application/x-cpio', 'cpt' => 'application/mac-compactpro', 'csh' => 'application/x-csh', 'csv' => array( (int) 0 => 'text/csv', (int) 1 => 'application/vnd.ms-excel' ), 'dcr' => 'application/x-director', 'dir' => 'application/x-director', 'dms' => 'application/octet-stream', 'doc' => 'application/msword', 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'drw' => 'application/drafting', 'dvi' => 'application/x-dvi', 'dwg' => 'application/acad', 'dxf' => 'application/dxf', 'dxr' => 'application/x-director', 'eot' => 'application/vnd.ms-fontobject', 'eps' => 'application/postscript', 'exe' => 'application/octet-stream', 'ez' => 'application/andrew-inset', 'flv' => 'video/x-flv', 'gtar' => 'application/x-gtar', 'gz' => 'application/x-gzip', 'bz2' => 'application/x-bzip', '7z' => 'application/x-7z-compressed', 'hdf' => 'application/x-hdf', 'hqx' => 'application/mac-binhex40', 'ico' => 'image/x-icon', 'ips' => 'application/x-ipscript', 'ipx' => 'application/x-ipix', 'js' => 'application/javascript', 'jsonapi' => 'application/vnd.api+json', 'latex' => 'application/x-latex', 'lha' => 'application/octet-stream', 'lsp' => 'application/x-lisp', 'lzh' => 'application/octet-stream', 'man' => 'application/x-troff-man', 'me' => 'application/x-troff-me', 'mif' => 'application/vnd.mif', 'ms' => 'application/x-troff-ms', 'nc' => 'application/x-netcdf', 'oda' => 'application/oda', 'otf' => 'font/otf', 'pdf' => 'application/pdf', 'pgn' => 'application/x-chess-pgn', 'pot' => 'application/vnd.ms-powerpoint', 'pps' => 'application/vnd.ms-powerpoint', 'ppt' => 'application/vnd.ms-powerpoint', 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'ppz' => 'application/vnd.ms-powerpoint', 'pre' => 'application/x-freelance', 'prt' => 'application/pro_eng', 'ps' => 'application/postscript', 'roff' => 'application/x-troff', 'scm' => 'application/x-lotusscreencam', 'set' => 'application/set', 'sh' => 'application/x-sh', 'shar' => 'application/x-shar', 'sit' => 'application/x-stuffit', 'skd' => 'application/x-koan', 'skm' => 'application/x-koan', 'skp' => 'application/x-koan', 'skt' => 'application/x-koan', 'smi' => 'application/smil', 'smil' => 'application/smil', 'sol' => 'application/solids', 'spl' => 'application/x-futuresplash', 'src' => 'application/x-wais-source', 'step' => 'application/STEP', 'stl' => 'application/SLA', 'stp' => 'application/STEP', 'sv4cpio' => 'application/x-sv4cpio', 'sv4crc' => 'application/x-sv4crc', 'svg' => 'image/svg+xml', 'svgz' => 'image/svg+xml', 'swf' => 'application/x-shockwave-flash', 't' => 'application/x-troff', 'tar' => 'application/x-tar', 'tcl' => 'application/x-tcl', 'tex' => 'application/x-tex', 'texi' => 'application/x-texinfo', 'texinfo' => 'application/x-texinfo', 'tr' => 'application/x-troff', 'tsp' => 'application/dsptype', 'ttc' => 'font/ttf', 'ttf' => 'font/ttf', 'unv' => 'application/i-deas', 'ustar' => 'application/x-ustar', 'vcd' => 'application/x-cdlink', 'vda' => 'application/vda', 'xlc' => 'application/vnd.ms-excel', 'xll' => 'application/vnd.ms-excel', 'xlm' => 'application/vnd.ms-excel', 'xls' => 'application/vnd.ms-excel', 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'xlw' => 'application/vnd.ms-excel', 'zip' => 'application/zip', 'aif' => 'audio/x-aiff', 'aifc' => 'audio/x-aiff', 'aiff' => 'audio/x-aiff', 'au' => 'audio/basic', 'kar' => 'audio/midi', 'mid' => 'audio/midi', 'midi' => 'audio/midi', 'mp2' => 'audio/mpeg', 'mp3' => 'audio/mpeg', 'mpga' => 'audio/mpeg', 'ogg' => 'audio/ogg', 'oga' => 'audio/ogg', 'spx' => 'audio/ogg', 'ra' => 'audio/x-realaudio', 'ram' => 'audio/x-pn-realaudio', 'rm' => 'audio/x-pn-realaudio', 'rpm' => 'audio/x-pn-realaudio-plugin', 'snd' => 'audio/basic', 'tsi' => 'audio/TSP-audio', 'wav' => 'audio/x-wav', 'aac' => 'audio/aac', 'asc' => 'text/plain', 'c' => 'text/plain', 'cc' => 'text/plain', 'css' => 'text/css', 'etx' => 'text/x-setext', 'f' => 'text/plain', 'f90' => 'text/plain', 'h' => 'text/plain', 'hh' => 'text/plain', 'htm' => array( (int) 0 => 'text/html', (int) 1 => '*/*' ), 'ics' => 'text/calendar', 'm' => 'text/plain', 'rtf' => 'text/rtf', 'rtx' => 'text/richtext', 'sgm' => 'text/sgml', 'sgml' => 'text/sgml', 'tsv' => 'text/tab-separated-values', 'tpl' => 'text/template', 'txt' => 'text/plain', 'text' => 'text/plain', 'avi' => 'video/x-msvideo', 'fli' => 'video/x-fli', 'mov' => 'video/quicktime', 'movie' => 'video/x-sgi-movie', 'mpe' => 'video/mpeg', 'mpeg' => 'video/mpeg', 'mpg' => 'video/mpeg', 'qt' => 'video/quicktime', 'viv' => 'video/vnd.vivo', 'vivo' => 'video/vnd.vivo', 'ogv' => 'video/ogg', 'webm' => 'video/webm', 'mp4' => 'video/mp4', 'm4v' => 'video/mp4', 'f4v' => 'video/mp4', 'f4p' => 'video/mp4', 'm4a' => 'audio/mp4', 'f4a' => 'audio/mp4', 'f4b' => 'audio/mp4', 'gif' => 'image/gif', 'ief' => 'image/ief', 'jpg' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'jpe' => 'image/jpeg', 'pbm' => 'image/x-portable-bitmap', 'pgm' => 'image/x-portable-graymap', 'png' => 'image/png', 'pnm' => 'image/x-portable-anymap', 'ppm' => 'image/x-portable-pixmap', 'ras' => 'image/cmu-raster', 'rgb' => 'image/x-rgb', 'tif' => 'image/tiff', 'tiff' => 'image/tiff', 'xbm' => 'image/x-xbitmap', 'xpm' => 'image/x-xpixmap', 'xwd' => 'image/x-xwindowdump', 'psd' => array( (int) 0 => 'application/photoshop', (int) 1 => 'application/psd', (int) 2 => 'image/psd', (int) 3 => 'image/x-photoshop', (int) 4 => 'image/photoshop', (int) 5 => 'zz-application/zz-winassoc-psd' ), 'ice' => 'x-conference/x-cooltalk', 'iges' => 'model/iges', 'igs' => 'model/iges', 'mesh' => 'model/mesh', 'msh' => 'model/mesh', 'silo' => 'model/mesh', 'vrml' => 'model/vrml', 'wrl' => 'model/vrml', 'mime' => 'www/mime', 'pdb' => 'chemical/x-pdb', 'xyz' => 'chemical/x-pdb', 'javascript' => 'application/javascript', 'form' => 'application/x-www-form-urlencoded', 'file' => 'multipart/form-data', 'xhtml' => array( (int) 0 => 'application/xhtml+xml', (int) 1 => 'application/xhtml', (int) 2 => 'text/xhtml' ), 'xhtml-mobile' => 'application/vnd.wap.xhtml+xml', 'atom' => 'application/atom+xml', 'amf' => 'application/x-amf', 'wap' => array( (int) 0 => 'text/vnd.wap.wml', (int) 1 => 'text/vnd.wap.wmlscript', (int) 2 => 'image/vnd.wap.wbmp' ), 'wml' => 'text/vnd.wap.wml', 'wmlscript' => 'text/vnd.wap.wmlscript', 'wbmp' => 'image/vnd.wap.wbmp', 'woff' => 'application/x-font-woff', 'webp' => 'image/webp', 'appcache' => 'text/cache-manifest', 'manifest' => 'text/cache-manifest', 'htc' => 'text/x-component', 'rdf' => 'application/xml', 'crx' => 'application/x-chrome-extension', 'oex' => 'application/x-opera-extension', 'xpi' => 'application/x-xpinstall', 'safariextz' => 'application/octet-stream', 'webapp' => 'application/x-web-app-manifest+json', 'vcf' => 'text/x-vcard', 'vtt' => 'text/vtt', 'mkv' => 'video/x-matroska', 'pkpass' => 'application/vnd.apple.pkpass', 'ajax' => 'text/html' ) [protected] _protocol => 'HTTP/1.1' [protected] _status => (int) 200 [protected] _contentType => 'text/html' [protected] _headers => array() [protected] _body => null [protected] _file => null [protected] _fileRange => null [protected] _charset => 'UTF-8' [protected] _cacheDirectives => array() [protected] _cookies => array() }