// just return null. Otherwise, we'll get the contents of the file and get // the expiration UNIX timestamps from the start of the file's contents. try { $expire = substr( $contents = $this->files->get($path, true), 0, 10 ); } catch (Exception $e) { return $this->emptyPayload(); } // If the current time is greater than expiration timestamps we will delete // the file and return null. This helps clean up the old files and keeps // this directory much cleaner for us as old files aren't hanging out. if ($this->currentTime() >= $expire) { $this->forget($key); return $this->emptyPayload(); } $data = unserialize(substr($contents, 10)); // Next, we'll extract the number of minutes that are remaining for a cache // so that we can properly retain the time for things like the increment // operation that may be performed on this cache on a later operation. $time = ($expire - $this->currentTime()) / 60; return compact('data', 'time'); } /** * Get a default empty payload for the cache. * * @return array */ protected function emptyPayload() { return ['data' => null, 'time' => null]; } /**
"unserialize(): Error at offset 21729 of 24566 bytes"
// just return null. Otherwise, we'll get the contents of the file and get // the expiration UNIX timestamps from the start of the file's contents. try { $expire = substr( $contents = $this->files->get($path, true), 0, 10 ); } catch (Exception $e) { return $this->emptyPayload(); } // If the current time is greater than expiration timestamps we will delete // the file and return null. This helps clean up the old files and keeps // this directory much cleaner for us as old files aren't hanging out. if ($this->currentTime() >= $expire) { $this->forget($key); return $this->emptyPayload(); } $data = unserialize(substr($contents, 10)); // Next, we'll extract the number of minutes that are remaining for a cache // so that we can properly retain the time for things like the increment // operation that may be performed on this cache on a later operation. $time = ($expire - $this->currentTime()) / 60; return compact('data', 'time'); } /** * Get a default empty payload for the cache. * * @return array */ protected function emptyPayload() { return ['data' => null, 'time' => null]; } /**
""" O:42:"Illuminate\Pagination\LengthAwarePaginator":9:{s:8:"\x00*\x00total";i:217;s:11:"\x00*\x00lastPage";i:22;s:8:"\x00*\x00items";O:29:"Illuminate\Support\Collection":1:{s:8:"\x00*\x00items";a:10:{i:0;O:8:"stdClass":20:{s:2:"id";i:2816;s:11:"category_id";s:3:"247";s:8:"brand_id";i:155;s:3:"sku";s:8:"1004-240";s:4:"name";s:58:"Giấy lọc định tính 4, nhanh 20-25um, 240mm Whatman";s:4:"slug";s:48:"giay-loc-dinh-tinh-4-nhanh-20-25um-240mm-whatman";s:5:"image";s:81:"https://vietchem.com.vn/uploads/vietchem/2018/07/1004-giay-loc-dinh-tinh-so-4.png";s:6:"slides";s:81:"https://vietchem.com.vn/uploads/vietchem/2018/07/1004-giay-loc-dinh-tinh-so-4.png";s:11:"description";s:488:"Giấy lọc định tính 4, nhanh 20-25um, 240mm. Code 1004-240 (Whatman - Anh). Chất liệu: Cellulose, hình tròn, bề mặt mịn, Lọc cực nhanh với khả năng giữ các hạt thô và các chất kết tủa dạng gel vượt trội như sắt hydroxide và nhôm hydroxide.Dùng khi yêu cầu tốc độ lưu thông cao trong việc khảo sát ô nhiễm không khí và thu thập các hạt nhỏ không cần nghiêm ngặt. Quy cách đóng gói: 100 cái/hộp";s:14:"specifications";s:9027:"<table style="width: 724px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 148px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm</strong></span></td>\r\n <td style="width: 566px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Giấy lọc định tính 4, nhanh 20-25µm, 240mm Whatman</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 148px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code</strong></span></td>\r\n <td style="width: 566px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>1004-240</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 148px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ</strong></span></td>\r\n <td style="width: 566px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Whatman - Anh</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 148px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng</strong></span></td>\r\n <td style="width: 566px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Giữ các hạt thô và các chất kết tủa dạng gel vượt trội như sắt hydroxide và nhôm hydroxide</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Làm sạch các chất lỏng sinh học hay các chiết xuất hữu cơ trong lúc phân tích</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Dùng khi yêu cầu tốc độ lưu thông cao trong việc khảo sát ô nhiễm không khí và thu thập các hạt nhỏ không cần nghiêm ngặt. </span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 148px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Mô tả sản phẩm</strong></span></td>\r\n <td style="width: 566px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Chất liệu: Cellulose</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Bề mặt: Mịn</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Độ xốp: Trung bình</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Độ giữ hạt trong chất lỏng: 20-25µm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Tốc độ lọc: 37 giây (Herzberg)</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Độ dày: 205µm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Khối lượng: 96 g/m<sup>2</sup> </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Đường kính: 240mm</span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p><span style="font-family: arial, helvetica, sans-serif;"><strong>Sản phẩm tham khảo:</strong></span></p>\r\n <table style="width: 724px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;"><strong>STT</strong></span></td>\r\n <td style="width: 82px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code</strong></span></td>\r\n <td style="width: 420px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm</strong></span></td>\r\n <td style="width: 174px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Giá chưa VAT (Vnđ)</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1</span></td>\r\n <td style="width: 82px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-042</span></td>\r\n <td style="width: 420px;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 42.5mm Whatman</span></td>\r\n <td style="width: 174px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">185.000 - 256.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">2</span></td>\r\n <td style="width: 82px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-047</span></td>\r\n <td style="width: 420px;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 47mm Whatman</span></td>\r\n <td style="width: 174px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">211.000 - 292.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">3</span></td>\r\n <td style="width: 82px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-055</span></td>\r\n <td style="width: 420px;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 55mm Whatman</span></td>\r\n <td style="width: 174px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">212.000 - 293.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">4</span></td>\r\n <td style="width: 82px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-070</span></td>\r\n <td style="width: 420px;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 70mm Whatman</span></td>\r\n <td style="width: 174px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">212.000 - 293.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">5</span></td>\r\n <td style="width: 82px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-090</span></td>\r\n <td style="width: 420px;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 90mm Whatman</span></td>\r\n <td style="width: 174px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">234.000 - 324.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">6</span></td>\r\n <td style="width: 82px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-110</span></td>\r\n <td style="width: 420px;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 110mm Whatman</span></td>\r\n <td style="width: 174px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">270.000 - 374.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">7</span></td>\r\n <td style="width: 82px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-150</span></td>\r\n <td style="width: 420px;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 150mm Whatman</span></td>\r\n <td style="width: 174px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">452.000 - 626.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">8</span></td>\r\n <td style="width: 82px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-185</span></td>\r\n <td style="width: 420px;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 185mm Whatman</span></td>\r\n <td style="width: 174px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">677.000 - 938.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">9</span></td>\r\n <td style="width: 82px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-240</span></td>\r\n <td style="width: 420px;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 240mm Whatman</span></td>\r\n <td style="width: 174px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1.182.000 - 1.636.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">10</span></td>\r\n <td style="width: 82px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-270</span></td>\r\n <td style="width: 420px;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 270mm Whatman</span></td>\r\n <td style="width: 174px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1.455.000 - 2.014.000</span></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p><span style="font-family: arial, helvetica, sans-serif;"> </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;"> </span></p>";s:9:"price_low";i:1182000;s:10:"price_high";i:1636000;s:6:"detail";s:0:"";s:9:"catalogue";N;s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2018-10-12 21:19:27";s:10:"updated_at";s:19:"2020-09-09 22:18:22";s:4:"unit";N;}i:1;O:8:"stdClass":20:{s:2:"id";i:2817;s:11:"category_id";s:3:"247";s:8:"brand_id";i:155;s:3:"sku";s:8:"1004-270";s:4:"name";s:58:"Giấy lọc định tính 4, nhanh 20-25um, 270mm Whatman";s:4:"slug";s:48:"giay-loc-dinh-tinh-4-nhanh-20-25um-270mm-whatman";s:5:"image";s:81:"https://vietchem.com.vn/uploads/vietchem/2018/07/1004-giay-loc-dinh-tinh-so-4.png";s:6:"slides";s:81:"https://vietchem.com.vn/uploads/vietchem/2018/07/1004-giay-loc-dinh-tinh-so-4.png";s:11:"description";s:488:"Giấy lọc định tính 4, nhanh 20-25um, 270mm. Code 1004-270 (Whatman - Anh). Chất liệu: Cellulose, hình tròn, bề mặt mịn, Lọc cực nhanh với khả năng giữ các hạt thô và các chất kết tủa dạng gel vượt trội như sắt hydroxide và nhôm hydroxide.Dùng khi yêu cầu tốc độ lưu thông cao trong việc khảo sát ô nhiễm không khí và thu thập các hạt nhỏ không cần nghiêm ngặt. Quy cách đóng gói: 100 cái/hộp";s:14:"specifications";s:9227:"<table style="width: 728px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 145px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm</strong></span></td>\r\n <td style="width: 573px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Giấy lọc định tính 4, nhanh 20-25µm, 270mm Whatman</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 145px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code</strong></span></td>\r\n <td style="width: 573px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>1004-270</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 145px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ</strong></span></td>\r\n <td style="width: 573px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Whatman - Anh</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 145px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng</strong></span></td>\r\n <td style="width: 573px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Giữ các hạt thô và các chất kết tủa dạng gel vượt trội như sắt hydroxide và nhôm hydroxide</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Làm sạch các chất lỏng sinh học hay các chiết xuất hữu cơ trong lúc phân tích</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Dùng khi yêu cầu tốc độ lưu thông cao trong việc khảo sát ô nhiễm không khí và thu thập các hạt nhỏ không cần nghiêm ngặt. </span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 145px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Mô tả sản phẩm</strong></span></td>\r\n <td style="width: 573px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Chất liệu: Cellulose</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Bề mặt: Mịn</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Độ xốp: Trung bình</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Độ giữ hạt trong chất lỏng: 20-25µm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Tốc độ lọc: 37 giây (Herzberg)</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Độ dày: 205µm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Khối lượng: 96 g/m<sup>2</sup> </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Đường kính: 270mm</span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p><span style="font-family: arial, helvetica, sans-serif;"><strong>Sản phẩm tham khảo:</strong></span></p>\r\n <table style="width: 729px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;"><strong>STT</strong></span></td>\r\n <td style="width: 78px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code</strong></span></td>\r\n <td style="width: 419px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm</strong></span></td>\r\n <td style="width: 186px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Giá chưa VAT (Vnđ)</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1</span></td>\r\n <td style="width: 78px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-042</span></td>\r\n <td style="width: 419px; text-align: left;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 42.5mm Whatman</span></td>\r\n <td style="width: 186px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">185.000 - 256.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">2</span></td>\r\n <td style="width: 78px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-047</span></td>\r\n <td style="width: 419px; text-align: left;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 47mm Whatman</span></td>\r\n <td style="width: 186px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">211.000 - 292.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">3</span></td>\r\n <td style="width: 78px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-055</span></td>\r\n <td style="width: 419px; text-align: left;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 55mm Whatman</span></td>\r\n <td style="width: 186px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">212.000 - 293.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">4</span></td>\r\n <td style="width: 78px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-070</span></td>\r\n <td style="width: 419px; text-align: left;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 70mm Whatman</span></td>\r\n <td style="width: 186px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">212.000 - 293.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">5</span></td>\r\n <td style="width: 78px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-090</span></td>\r\n <td style="width: 419px; text-align: left;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 90mm Whatman</span></td>\r\n <td style="width: 186px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">234.000 - 324.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">6</span></td>\r\n <td style="width: 78px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-110</span></td>\r\n <td style="width: 419px; text-align: left;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 110mm Whatman</span></td>\r\n <td style="width: 186px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">270.000 - 374.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">7</span></td>\r\n <td style="width: 78px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-150</span></td>\r\n <td style="width: 419px; text-align: left;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 150mm Whatman</span></td>\r\n <td style="width: 186px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">452.000 - 626.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">8</span></td>\r\n <td style="width: 78px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-185</span></td>\r\n <td style="width: 419px; text-align: left;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 185mm Whatman</span></td>\r\n <td style="width: 186px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">677.000 - 938.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">9</span></td>\r\n <td style="width: 78px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-240</span></td>\r\n <td style="width: 419px; text-align: left;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 240mm Whatman</span></td>\r\n <td style="width: 186px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1.182.000 - 1.636.000</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 30px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">10</span></td>\r\n <td style="width: 78px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1004-270</span></td>\r\n <td style="width: 419px; text-align: left;"><span style="font-family: arial, helvetica, sans-serif;">Giấy lọc định tính 4, nhanh 20-25µm, 270mm Whatman</span></td>\r\n <td style="width: 186px; text-align: center;"><span style="font-family: arial, helvetica, sans-serif;">1.455.000 - 2.014.000</span></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p><span style="font-family: arial, helvetica, sans-serif;"> </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;"> </span></p>";s:9:"price_low";i:1455000;s:10:"price_high";i:2014000;s:6:"detail";s:0:"";s:9:"catalogue";N;s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2018-10-12 21:19:27";s:10:"updated_at";s:19:"2020-09-09 22:18:22";s:4:"unit";N;}i:2;O:8:"stdClass":20:{s:2:"id";i:518;s:11:"category_id";s:3:"247";s:8:"brand_id";i:155;s:3:"sku";s:7:"1005025";s:4:"name";s:61:"Giấy lọc định tính số 5 lỗ lọc 2.5µm - Whatman";s:4:"slug";s:44:"giay-loc-dinh-tinh-so-5-lo-loc-2-5-m-whatman";s:5:"image";s:97:"https://vietchem.com.vn/uploads/vietchem/2018/05/giay-loc-dinh-tinh-so-5-lo-loc-2-5-m-whatman.jpg";s:6:"slides";s:0:"";s:11:"description";s:321:"Giấy lọc định tính số 5 thích hợp cho phân tích hóa học, làm rõ hệ thống treo và phân tích đất xi măng. Mức độ lọc các hạt nhỏ tối đa trong thang định tính. Bộ lọc rất tốt cho các chất lỏng vẩn đục và đối với việc phân tích nước và đất.";s:14:"specifications";s:8645:"<table style="height: 174px; width: 706px;">\r\n <tbody>\r\n <tr style="height: 29px;">\r\n <td style="width: 133px; height: 29px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên gọi: </strong></span></td>\r\n <td style="width: 567px; height: 29px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Giấy lọc định tính số 5</strong></span></td>\r\n </tr>\r\n <tr style="height: 24px;">\r\n <td style="width: 133px; height: 24px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng sản xuất:</strong></span></td>\r\n <td style="width: 567px; height: 24px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Whatman - Anh</strong></span></td>\r\n </tr>\r\n <tr style="height: 30px;">\r\n <td style="width: 133px; height: 30px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 567px; height: 30px;"><span style="font-family: arial, helvetica, sans-serif;">Sử dụng để lọc các hạt định tính Giấy lọc định tính số 5 thích hợp cho phân tích hóa học, làm rõ hệ thống treo và phân tích đất xi măng. Mức độ lọc các hạt nhỏ tối đa trong thang định tính. Bộ lọc rất tốt cho các chất lỏng vẩn đục và đối với việc phân tích nước và đất.</span></td>\r\n </tr>\r\n <tr style="height: 40px;">\r\n <td style="width: 133px; height: 40px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Mô tả sản phẩm:</strong></span></td>\r\n <td style="width: 567px; height: 40px;"><span style="font-family: arial, helvetica, sans-serif;">- Tốc độ lọc: Chậm</span><br /><br /><span style="font-family: arial, helvetica, sans-serif;">- Kích thước lỗ lọc: 2.5µm</span><br /><br /><span style="font-family: arial, helvetica, sans-serif;">- Giấy lọc định tính số 5 thích hợp cho phân tích hóa học, làm rõ hệ thống treo và phân tích đất xi măng.</span><br /><br /><span style="font-family: arial, helvetica, sans-serif;">- Mức độ lọc các hạt nhỏ tối đa trong thang định tính.</span><br /><br /><span style="font-family: arial, helvetica, sans-serif;">- Bộ lọc rất tốt cho các chất lỏng vẩn đục và đối với việc phân tích nước và đất.</span><br /><br /><span style="font-family: arial, helvetica, sans-serif;">- Cũng có dạng gấp sẵn (Loại 5V).</span></td>\r\n </tr>\r\n <tr style="height: 40px;">\r\n <td style="width: 133px; height: 40px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Đóng gói:</strong></span></td>\r\n <td style="width: 567px; height: 40px;"><span style="font-family: arial, helvetica, sans-serif;">100 cái/ hộp</span></td>\r\n </tr>\r\n <tr style="height: 40px;">\r\n <td style="width: """
* * @param \Illuminate\Filesystem\Filesystem $files * @param string $directory * @return void */ public function __construct(Filesystem $files, $directory) { $this->files = $files; $this->directory = $directory; } /** * Retrieve an item from the cache by key. * * @param string|array $key * @return mixed */ public function get($key) { return $this->getPayload($key)['data'] ?? null; } /** * Store an item in the cache for a given number of minutes. * * @param string $key * @param mixed $value * @param float|int $minutes * @return void */ public function put($key, $value, $minutes) { $this->ensureCacheDirectoryExists($path = $this->path($key)); $this->files->put( $path, $this->expiration($minutes).serialize($value), true ); } /**
"data_product_giay-loc_page_0"
*/ public function has($key) { return ! is_null($this->get($key)); } /** * Retrieve an item from the cache by key. * * @param string $key * @param mixed $default * @return mixed */ public function get($key, $default = null) { if (is_array($key)) { return $this->many($key); } $value = $this->store->get($this->itemKey($key)); // If we could not find the cache value, we will fire the missed event and get // the default value for this cache value. This default could be a callback // so we will execute the value function which will resolve it if needed. if (is_null($value)) { $this->event(new CacheMissed($key)); $value = value($default); } else { $this->event(new CacheHit($key, $value)); } return $value; } /** * Retrieve multiple items from the cache by key. * * Items not found in the cache will have a null value. *
"data_product_giay-loc_page_0"
* * @param string $key * @param \Closure $callback * @return mixed */ public function sear($key, Closure $callback) { return $this->rememberForever($key, $callback); } /** * Get an item from the cache, or store the default value forever. * * @param string $key * @param \Closure $callback * @return mixed */ public function rememberForever($key, Closure $callback) { $value = $this->get($key); // If the item exists in the cache we will just return this immediately and if // not we will execute the given Closure and cache the result of that for a // given number of minutes so it's available for all subsequent requests. if (! is_null($value)) { return $value; } $this->forever($key, $value = $callback()); return $value; } /** * Remove an item from the cache. * * @param string $key * @return bool */ public function forget($key)
"data_product_giay-loc_page_0"
* @param \Closure $callback * @return $this */ public function extend($driver, Closure $callback) { $this->customCreators[$driver] = $callback->bindTo($this, $this); return $this; } /** * Dynamically call the default driver instance. * * @param string $method * @param array $parameters * @return mixed */ public function __call($method, $parameters) { return $this->store()->$method(...$parameters); } }
} /** * Handle dynamic, static calls to the object. * * @param string $method * @param array $args * @return mixed * * @throws \RuntimeException */ public static function __callStatic($method, $args) { $instance = static::getFacadeRoot(); if (! $instance) { throw new RuntimeException('A facade root has not been set.'); } return $instance->$method(...$args); } }
// $data_product = $data_product -> orWhere('category_id',$v->id); } } } } // dump($cate_ids); // $data_categories_map = DB::table('products_categories_map')->select('product_id')->whereIn('category_id', $cate_ids)->pluck('product_id')->toArray(); $data_product = $data_product->whereIn('category_id',$cate_ids); if($brand_id>0){ $cache_name = 'data_product_'.$slug.'_brand_'.$brand_id; $data_product = Cache::rememberForever($cache_name, function() use ($data_product,$brand_id) { return $data_product->where('brand_id',$brand_id)->orderBy('orders','asc')->get(); }); //$data_product = $data_product->where('brand_id',$brand_id)->get(); }else{ $page = $request->get('page',0); $cache_name = 'data_product_'.$slug.'_page_'.$page; $data_product = Cache::rememberForever($cache_name, function() use ($data_product,$page_size) { return $data_product->orderBy('orders','asc')->paginate($page_size); }); //$data_product = $data_product->paginate($page_size); } $meta_seo = $this->meta_seo('products_categories',$data_cate->id,[ 'title' => $data_cate->name, 'description'=> cutString($data_cate->detail,160), 'url' => url('').url_cate($data_cate->slug) ]); $category_involve = DB::table('products_categories')->where('status',1)->where('parent_id',$data_cate->id)->limit($page_size_product_involve)->get(); $data_brand = Cache::rememberForever('data_brand_'.$slug, function() use ($cate_ids) { return DB::table('brands') ->select(['brands.*',DB::raw('count(products.id) as count')]) ->leftJoin('products','brands.id','=','products.brand_id') ->whereIn('products.category_id',$cate_ids) ->where('products.status',1)->where('brands.status',1) ->groupBy('products.brand_id') ->orderBy('count','DESC')->limit(10) ->get(); }); $admin_bar_edit = route('products_categories.edit', $data_cate->id); return view('web.category.show',compact('data_cate','data_product','meta_seo','category_involve','data_brand','page_size_brands','page_size_product_involve','cate_ids','brand_id','case_category','admin_bar_edit'));
/** * Get the middleware assigned to the controller. * * @return array */ public function getMiddleware() { return $this->middleware; } /** * Execute an action on the controller. * * @param string $method * @param array $parameters * @return \Symfony\Component\HttpFoundation\Response */ public function callAction($method, $parameters) { return call_user_func_array([$this, $method], $parameters); } /** * Handle calls to missing methods on the controller. * * @param string $method * @param array $parameters * @return mixed * * @throws \BadMethodCallException */ public function __call($method, $parameters) { throw new BadMethodCallException("Method [{$method}] does not exist on [".get_class($this).'].'); } }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
"giay-loc"
/** * Get the middleware assigned to the controller. * * @return array */ public function getMiddleware() { return $this->middleware; } /** * Execute an action on the controller. * * @param string $method * @param array $parameters * @return \Symfony\Component\HttpFoundation\Response */ public function callAction($method, $parameters) { return call_user_func_array([$this, $method], $parameters); } /** * Handle calls to missing methods on the controller. * * @param string $method * @param array $parameters * @return mixed * * @throws \BadMethodCallException */ public function __call($method, $parameters) { throw new BadMethodCallException("Method [{$method}] does not exist on [".get_class($this).'].'); } }
array:2 [ 0 => CategoryController {#423} 1 => "index" ]
array:2 [ 0 => Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" } "slug" => "giay-loc" ]
{ $this->container = $container; } /** * Dispatch a request to a given controller and method. * * @param \Illuminate\Routing\Route $route * @param mixed $controller * @param string $method * @return mixed */ public function dispatch(Route $route, $controller, $method) { $parameters = $this->resolveClassMethodDependencies( $route->parametersWithoutNulls(), $controller, $method ); if (method_exists($controller, 'callAction')) { return $controller->callAction($method, $parameters); } return $controller->{$method}(...array_values($parameters)); } /** * Get the middleware for the controller instance. * * @param \Illuminate\Routing\Controller $controller * @param string $method * @return array */ public function getMiddleware($controller, $method) { if (! method_exists($controller, 'getMiddleware')) { return []; } return collect($controller->getMiddleware())->reject(function ($data) use ($method) { return static::methodExcludedByOptions($method, $data['options']);
"index"
array:2 [ 0 => Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" } "slug" => "giay-loc" ]
protected function runCallable() { $callable = $this->action['uses']; return $callable(...array_values($this->resolveMethodDependencies( $this->parametersWithoutNulls(), new ReflectionFunction($this->action['uses']) ))); } /** * Run the route action and return the response. * * @return mixed * * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException */ protected function runController() { return $this->controllerDispatcher()->dispatch( $this, $this->getController(), $this->getControllerMethod() ); } /** * Get the controller instance for the route. * * @return mixed */ public function getController() { if (! $this->controller) { $class = $this->parseControllerCallback()[0]; $this->controller = $this->container->make(ltrim($class, '\\')); } return $this->controller; } /**
* * @throws \UnexpectedValueException */ protected function parseAction($action) { return RouteAction::parse($this->uri, $action); } /** * Run the route action and return the response. * * @return mixed */ public function run() { $this->container = $this->container ?: new Container; try { if ($this->isControllerAction()) { return $this->runController(); } return $this->runCallable(); } catch (HttpResponseException $e) { return $e->getResponse(); } } /** * Checks whether the route's action is a controller. * * @return bool */ protected function isControllerAction() { return is_string($this->action['uses']); } /** * Run the route action and return the response.
/** * Run the given route within a Stack "onion" instance. * * @param \Illuminate\Routing\Route $route * @param \Illuminate\Http\Request $request * @return mixed */ protected function runRouteWithinStack(Route $route, Request $request) { $shouldSkipMiddleware = $this->container->bound('middleware.disable') && $this->container->make('middleware.disable') === true; $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route); return (new Pipeline($this->container)) ->send($request) ->through($middleware) ->then(function ($request) use ($route) { return $this->prepareResponse( $request, $route->run() ); }); } /** * Gather the middleware for the given route with resolved class names. * * @param \Illuminate\Routing\Route $route * @return array */ public function gatherRouteMiddleware(Route $route) { $middleware = collect($route->gatherMiddleware())->map(function ($name) { return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups); })->flatten(); return $this->sortMiddleware($middleware); } /**
use Symfony\Component\Debug\Exception\FatalThrowableError; /** * This extended pipeline catches any exceptions that occur during each slice. * * The exceptions are converted to HTTP responses for proper middleware handling. */ class Pipeline extends BasePipeline { /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { try { return $destination($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry();
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
*/ public function __construct(Registrar $router) { $this->router = $router; } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $this->router->substituteBindings($route = $request->route()); $this->router->substituteImplicitBindings($route); return $next($request); } }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#612 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#418 …} } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
} /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed * * @throws \Illuminate\Session\TokenMismatchException */ public function handle($request, Closure $next) { if ( $this->isReading($request) || $this->runningUnitTests() || $this->inExceptArray($request) || $this->tokensMatch($request) ) { return $this->addCookieToResponse($request, $next($request)); } throw new TokenMismatchException; } /** * Determine if the HTTP request uses a ‘read’ verb. * * @param \Illuminate\Http\Request $request * @return bool */ protected function isReading($request) { return in_array($request->method(), ['HEAD', 'GET', 'OPTIONS']); } /** * Determine if the application is running unit tests. * * @return bool
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#708 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#612 …} : "Illuminate\Routing\Middleware\SubstituteBindings" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { // If the current session has an "errors" variable bound to it, we will share // its value with all view instances so the views can easily access errors // without having to bind. An empty bag is set when there aren't errors. $this->view->share( 'errors', $request->session()->get('errors') ?: new ViewErrorBag ); // Putting the errors in the view for every view allows the developer to just // assume that some errors are always available, which is convenient since // they don't have to continually run checks for the presence of errors. return $next($request); } }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#714 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#708 …} : "App\Http\Middleware\VerifyCsrfToken" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $this->sessionHandled = true; // If a session driver has been configured, we will need to start the session here // so that the data is ready for an application. Note that the Laravel sessions // do not make use of PHP "native" sessions in any way since they are crappy. if ($this->sessionConfigured()) { $request->setLaravelSession( $session = $this->startSession($request) ); $this->collectGarbage($session); } $response = $next($request); // Again, if the session has been configured we will need to close out the session // so that the attributes may be persisted to some storage medium. We will also // add the session identifier cookie to the application response headers now. if ($this->sessionConfigured()) { $this->storeCurrentUrl($request, $session); $this->addCookieToResponse($response, $session); } return $response; } /** * Perform any final actions for the request lifecycle. * * @param \Illuminate\Http\Request $request * @param \Symfony\Component\HttpFoundation\Response $response * @return void */
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#715 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#714 …} : "Illuminate\View\Middleware\ShareErrorsFromSession" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* Create a new CookieQueue instance. * * @param \Illuminate\Contracts\Cookie\QueueingFactory $cookies * @return void */ public function __construct(CookieJar $cookies) { $this->cookies = $cookies; } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $response = $next($request); foreach ($this->cookies->getQueuedCookies() as $cookie) { $response->headers->setCookie($cookie); } return $response; } }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#716 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#715 …} : "Illuminate\Session\Middleware\StartSession" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* Disable encryption for the given cookie name(s). * * @param string|array $cookieName * @return void */ public function disableFor($cookieName) { $this->except = array_merge($this->except, (array) $cookieName); } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { return $this->encrypt($next($this->decrypt($request))); } /** * Decrypt the cookies on the request. * * @param \Symfony\Component\HttpFoundation\Request $request * @return \Symfony\Component\HttpFoundation\Request */ protected function decrypt(Request $request) { foreach ($request->cookies as $key => $c) { if ($this->isDisabled($key)) { continue; } try { $request->cookies->set($key, $this->decryptCookie($c)); } catch (DecryptException $e) { $request->cookies->set($key, null); }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#717 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#716 …} : "Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
public function via($method) { $this->method = $method; return $this; } /** * Run the pipeline with a final destination callback. * * @param \Closure $destination * @return mixed */ public function then(Closure $destination) { $pipeline = array_reduce( array_reverse($this->pipes), $this->carry(), $this->prepareDestination($destination) ); return $pipeline($this->passable); } /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { return $destination($passable); }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* * @param \Illuminate\Routing\Route $route * @param \Illuminate\Http\Request $request * @return mixed */ protected function runRouteWithinStack(Route $route, Request $request) { $shouldSkipMiddleware = $this->container->bound('middleware.disable') && $this->container->make('middleware.disable') === true; $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route); return (new Pipeline($this->container)) ->send($request) ->through($middleware) ->then(function ($request) use ($route) { return $this->prepareResponse( $request, $route->run() ); }); } /** * Gather the middleware for the given route with resolved class names. * * @param \Illuminate\Routing\Route $route * @return array */ public function gatherRouteMiddleware(Route $route) { $middleware = collect($route->gatherMiddleware())->map(function ($name) { return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups); })->flatten(); return $this->sortMiddleware($middleware); } /** * Sort the given middleware by priority. *
return $route; } /** * Return the response for the given route. * * @param Route $route * @param Request $request * @return mixed */ protected function runRoute(Request $request, Route $route) { $request->setRouteResolver(function () use ($route) { return $route; }); $this->events->dispatch(new Events\RouteMatched($route, $request)); return $this->prepareResponse($request, $this->runRouteWithinStack($route, $request) ); } /** * Run the given route within a Stack "onion" instance. * * @param \Illuminate\Routing\Route $route * @param \Illuminate\Http\Request $request * @return mixed */ protected function runRouteWithinStack(Route $route, Request $request) { $shouldSkipMiddleware = $this->container->bound('middleware.disable') && $this->container->make('middleware.disable') === true; $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route); return (new Pipeline($this->container)) ->send($request) ->through($middleware)
Route {#374}
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse */ public function dispatch(Request $request) { $this->currentRequest = $request; return $this->dispatchToRoute($request); } /** * Dispatch the request to a route and return the response. * * @param \Illuminate\Http\Request $request * @return mixed */ public function dispatchToRoute(Request $request) { return $this->runRoute($request, $this->findRoute($request)); } /** * Find the route matching a given request. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Routing\Route */ protected function findRoute($request) { $this->current = $route = $this->routes->match($request); $this->container->instance(Route::class, $route); return $route; } /** * Return the response for the given route. *
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Route {#374}
* @return mixed */ public function respondWithRoute($name) { $route = tap($this->routes->getByName($name))->bind($this->currentRequest); return $this->runRoute($this->currentRequest, $route); } /** * Dispatch the request to the application. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse */ public function dispatch(Request $request) { $this->currentRequest = $request; return $this->dispatchToRoute($request); } /** * Dispatch the request to a route and return the response. * * @param \Illuminate\Http\Request $request * @return mixed */ public function dispatchToRoute(Request $request) { return $this->runRoute($request, $this->findRoute($request)); } /** * Find the route matching a given request. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Routing\Route */ protected function findRoute($request)
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* @return void */ public function bootstrap() { if (! $this->app->hasBeenBootstrapped()) { $this->app->bootstrapWith($this->bootstrappers()); } } /** * Get the route dispatcher callback. * * @return \Closure */ protected function dispatchToRouter() { return function ($request) { $this->app->instance('request', $request); return $this->router->dispatch($request); }; } /** * Call the terminate method on any terminable middleware. * * @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Response $response * @return void */ public function terminate($request, $response) { $this->terminateMiddleware($request, $response); $this->app->terminate(); } /** * Call the terminate method on any terminable middleware. *
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
use Symfony\Component\Debug\Exception\FatalThrowableError; /** * This extended pipeline catches any exceptions that occur during each slice. * * The exceptions are converted to HTTP responses for proper middleware handling. */ class Pipeline extends BasePipeline { /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { try { return $destination($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry();
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* @param LaravelDebugbar $debugbar */ public function __construct(Container $container, LaravelDebugbar $debugbar) { $this->container = $container; $this->debugbar = $debugbar; $this->except = config('debugbar.except') ?: []; } /** * Handle an incoming request. * * @param Request $request * @param Closure $next * @return mixed */ public function handle($request, Closure $next) { if (!$this->debugbar->isEnabled() || $this->inExceptArray($request)) { return $next($request); } $this->debugbar->boot(); try { /** @var \Illuminate\Http\Response $response */ $response = $next($request); } catch (Exception $e) { $response = $this->handleException($request, $e); } catch (Error $error) { $e = new FatalThrowableError($error); $response = $this->handleException($request, $e); } // Modify the response to add the Debugbar $this->debugbar->modifyResponse($request, $response); return $response; }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#390 : "Illuminate\Routing\Pipeline" : Pipeline {#33 …} : { : {} } : { : Closure {#22 …} } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* The additional attributes passed to the middleware. * * @var array */ protected $attributes = []; /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next, ...$attributes) { $this->attributes = $attributes; $this->clean($request); return $next($request); } /** * Clean the request's data. * * @param \Illuminate\Http\Request $request * @return void */ protected function clean($request) { $this->cleanParameterBag($request->query); if ($request->isJson()) { $this->cleanParameterBag($request->json()); } else { $this->cleanParameterBag($request->request); } } /**
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#391 : "Illuminate\Routing\Pipeline" : Pipeline {#33 …} : { : {} } : { : Closure {#390 …} : "Barryvdh\Debugbar\Middleware\InjectDebugbar" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* The additional attributes passed to the middleware. * * @var array */ protected $attributes = []; /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next, ...$attributes) { $this->attributes = $attributes; $this->clean($request); return $next($request); } /** * Clean the request's data. * * @param \Illuminate\Http\Request $request * @return void */ protected function clean($request) { $this->cleanParameterBag($request->query); if ($request->isJson()) { $this->cleanParameterBag($request->json()); } else { $this->cleanParameterBag($request->request); } } /**
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#392 : "Illuminate\Routing\Pipeline" : Pipeline {#33 …} : { : {} } : { : Closure {#391 …} : "Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
class ValidatePostSize { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed * * @throws \Illuminate\Http\Exceptions\PostTooLargeException */ public function handle($request, Closure $next) { $max = $this->getPostMaxSize(); if ($max > 0 && $request->server('CONTENT_LENGTH') > $max) { throw new PostTooLargeException; } return $next($request); } /** * Determine the server 'post_max_size' as bytes. * * @return int */ protected function getPostMaxSize() { if (is_numeric($postMaxSize = ini_get('post_max_size'))) { return (int) $postMaxSize; } $metric = strtoupper(substr($postMaxSize, -1)); $postMaxSize = (int) $postMaxSize; switch ($metric) { case 'K': return $postMaxSize * 1024; case 'M':
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#393 : "Illuminate\Routing\Pipeline" : Pipeline {#33 …} : { : {} } : { : Closure {#392 …} : "App\Http\Middleware\TrimStrings" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
} /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed * * @throws \Symfony\Component\HttpKernel\Exception\HttpException */ public function handle($request, Closure $next) { if ($this->app->isDownForMaintenance()) { $data = json_decode(file_get_contents($this->app->storagePath().'/framework/down'), true); throw new MaintenanceModeException($data['time'], $data['retry'], $data['message']); } return $next($request); } }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#394 : "Illuminate\Routing\Pipeline" : Pipeline {#33 …} : { : {} } : { : Closure {#393 …} : "Illuminate\Foundation\Http\Middleware\ValidatePostSize" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
public function via($method) { $this->method = $method; return $this; } /** * Run the pipeline with a final destination callback. * * @param \Closure $destination * @return mixed */ public function then(Closure $destination) { $pipeline = array_reduce( array_reverse($this->pipes), $this->carry(), $this->prepareDestination($destination) ); return $pipeline($this->passable); } /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { return $destination($passable); }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
} /** * Send the given request through the middleware / router. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ protected function sendRequestThroughRouter($request) { $this->app->instance('request', $request); Facade::clearResolvedInstance('request'); $this->bootstrap(); return (new Pipeline($this->app)) ->send($request) ->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware) ->then($this->dispatchToRouter()); } /** * Bootstrap the application for HTTP requests. * * @return void */ public function bootstrap() { if (! $this->app->hasBeenBootstrapped()) { $this->app->bootstrapWith($this->bootstrappers()); } } /** * Get the route dispatcher callback. * * @return \Closure */ protected function dispatchToRouter()
$router->middlewareGroup($key, $middleware); } foreach ($this->routeMiddleware as $key => $middleware) { $router->aliasMiddleware($key, $middleware); } } /** * Handle an incoming HTTP request. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function handle($request) { try { $request->enableHttpMethodParameterOverride(); $response = $this->sendRequestThroughRouter($request); } catch (Exception $e) { $this->reportException($e); $response = $this->renderException($request, $e); } catch (Throwable $e) { $this->reportException($e = new FatalThrowableError($e)); $response = $this->renderException($request, $e); } $this->app['events']->dispatch( new Events\RequestHandled($request, $response) ); return $response; } /** * Send the given request through the middleware / router. *
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
*/ $app = require_once __DIR__.'/../bootstrap/app.php'; /* |-------------------------------------------------------------------------- | Run The Application |-------------------------------------------------------------------------- | | Once we have the application, we can handle the incoming request | through the kernel, and send the associated response back to | the client's browser allowing them to enjoy the creative | and wonderful application we have prepared for them. | */ $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); $response = $kernel->handle( $request = Illuminate\Http\Request::capture() ); $response->send(); $kernel->terminate($request, $response);
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/giay-loc" #requestUri: "/giay-loc" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
<?php /** * Laravel - A PHP Framework For Web Artisans * * @package Laravel * @author Taylor Otwell <taylor@laravel.com> */ $uri = urldecode( parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) ); // This file allows us to emulate Apache's "mod_rewrite" functionality from the // built-in PHP web server. This provides a convenient way to test a Laravel // application without having installed a "real" web server software here. if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { return false; } require_once __DIR__.'/public/index.php';
"/home/admin/domains/vietchem.com.vn/public_html/public/index.php"
Key | Value |
USER | "admin"
|
HOME | "/home/admin"
|
SCRIPT_NAME | "/index.php"
|
REQUEST_URI | "/giay-loc"
|
QUERY_STRING | "" |
REQUEST_METHOD | "GET"
|
SERVER_PROTOCOL | "HTTP/2.0"
|
GATEWAY_INTERFACE | "CGI/1.1"
|
REDIRECT_URL | "/giay-loc"
|
REMOTE_PORT | "46452"
|
SCRIPT_FILENAME | "/home/admin/domains/vietchem.com.vn/private_html/index.php"
|
SERVER_ADMIN | "webmaster@vietchem.com.vn"
|
CONTEXT_DOCUMENT_ROOT | "/home/admin/domains/vietchem.com.vn/private_html"
|
CONTEXT_PREFIX | "" |
REQUEST_SCHEME | "https"
|
DOCUMENT_ROOT | "/home/admin/domains/vietchem.com.vn/private_html"
|
REMOTE_ADDR | "3.95.233.107"
|
SERVER_PORT | "443"
|
SERVER_ADDR | "45.117.169.137"
|
SERVER_NAME | "vietchem.com.vn"
|
SERVER_SOFTWARE | "Apache/2"
|
SERVER_SIGNATURE | "" |
PATH | "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
|
HTTP_HOST | "vietchem.com.vn"
|
HTTP_REFERER | "https://vietchem.com.vn/giay-loc/"
|
HTTP_USER_AGENT | "claudebot"
|
HTTP_ACCEPT | "*/*"
|
proxy-nokeepalive | "1"
|
H2_STREAM_TAG | "23-7"
|
H2_STREAM_ID | "7"
|
H2_PUSHED_ON | "" |
H2_PUSHED | "" |
H2_PUSH | "off"
|
H2PUSH | "off"
|
HTTP2 | "on"
|
SSL_TLS_SNI | "vietchem.com.vn"
|
HTTPS | "on"
|
SCRIPT_URI | "https://vietchem.com.vn/giay-loc"
|
SCRIPT_URL | "/giay-loc"
|
UNIQUE_ID | "Zfl_Nb1so9f24IXOxzUXhQAADAk"
|
REDIRECT_STATUS | "200"
|
REDIRECT_H2_STREAM_TAG | "23-7"
|
REDIRECT_H2_STREAM_ID | "7"
|
REDIRECT_H2_PUSHED_ON | "" |
REDIRECT_H2_PUSHED | "" |
REDIRECT_H2_PUSH | "off"
|
REDIRECT_H2PUSH | "off"
|
REDIRECT_HTTP2 | "on"
|
REDIRECT_SSL_TLS_SNI | "vietchem.com.vn"
|
REDIRECT_HTTPS | "on"
|
REDIRECT_SCRIPT_URI | "https://vietchem.com.vn/giay-loc"
|
REDIRECT_SCRIPT_URL | "/giay-loc"
|
REDIRECT_UNIQUE_ID | "Zfl_Nb1so9f24IXOxzUXhQAADAk"
|
FCGI_ROLE | "RESPONDER"
|
PHP_SELF | "/index.php"
|
REQUEST_TIME_FLOAT | 1710849845.5928
|
REQUEST_TIME | 1710849845
|
APP_NAME | "VietChem"
|
APP_ENV | "local"
|
APP_KEY | "base64:Fd8nDg5pcpyqXHpQuYNcfOhWx9a3P7bot+AOTCXe+gs="
|
APP_DEBUG | "true"
|
APP_LOG_LEVEL | "debug"
|
APP_URL | "https://vietchem.com.vn"
|
DEBUGBAR_ENABLED | "false"
|
DB_CONNECTION | "mysql"
|
DB_HOST | "127.0.0.1"
|
DB_PORT | "3306"
|
DB_DATABASE | "admin_test"
|
DB_USERNAME | "admin_test"
|
DB_PASSWORD | "Vietchem@123"
|
BROADCAST_DRIVER | "log"
|
CACHE_DRIVER | "file"
|
SESSION_DRIVER | "file"
|
QUEUE_DRIVER | "sync"
|
REDIS_HOST | "127.0.0.1"
|
REDIS_PASSWORD | "null"
|
REDIS_PORT | "6379"
|
MAIL_DRIVER | "ses"
|
MAIL_HOST | "mailtrap.io"
|
MAIL_PORT | "2525"
|
MAIL_USERNAME | "null"
|
MAIL_PASSWORD | "null"
|
MAIL_ENCRYPTION | "null"
|
MAIL_FROM_ADDRESS | "no-reply@sudo.vn"
|
MAIL_FROM_NAME | "SudoCMS"
|
SES_REGION | "us-east-1"
|
PUSHER_APP_ID | "" |
PUSHER_APP_KEY | "" |
PUSHER_APP_SECRET | "" |
STORAGE_TYPE | "local"
|
Key | Value |
APP_NAME | "VietChem"
|
APP_ENV | "local"
|
APP_KEY | "base64:Fd8nDg5pcpyqXHpQuYNcfOhWx9a3P7bot+AOTCXe+gs="
|
APP_DEBUG | "true"
|
APP_LOG_LEVEL | "debug"
|
APP_URL | "https://vietchem.com.vn"
|
DEBUGBAR_ENABLED | "false"
|
DB_CONNECTION | "mysql"
|
DB_HOST | "127.0.0.1"
|
DB_PORT | "3306"
|
DB_DATABASE | "admin_test"
|
DB_USERNAME | "admin_test"
|
DB_PASSWORD | "Vietchem@123"
|
BROADCAST_DRIVER | "log"
|
CACHE_DRIVER | "file"
|
SESSION_DRIVER | "file"
|
QUEUE_DRIVER | "sync"
|
REDIS_HOST | "127.0.0.1"
|
REDIS_PASSWORD | "null"
|
REDIS_PORT | "6379"
|
MAIL_DRIVER | "ses"
|
MAIL_HOST | "mailtrap.io"
|
MAIL_PORT | "2525"
|
MAIL_USERNAME | "null"
|
MAIL_PASSWORD | "null"
|
MAIL_ENCRYPTION | "null"
|
MAIL_FROM_ADDRESS | "no-reply@sudo.vn"
|
MAIL_FROM_NAME | "SudoCMS"
|
SES_REGION | "us-east-1"
|
PUSHER_APP_ID | "" |
PUSHER_APP_KEY | "" |
PUSHER_APP_SECRET | "" |
STORAGE_TYPE | "local"
|