// 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 49138 of 49142 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:762;s:11:"\x00*\x00lastPage";i:64;s:8:"\x00*\x00items";O:29:"Illuminate\Support\Collection":1:{s:8:"\x00*\x00items";a:12:{i:0;O:8:"stdClass":20:{s:2:"id";i:5888;s:11:"category_id";s:3:"199";s:8:"brand_id";i:157;s:3:"sku";N;s:4:"name";s:31:"Sodium bicarbonate Trung Quốc";s:4:"slug";s:29:"sodium-bicarbonate-trung-quoc";s:5:"image";s:64:"https://vietchem.com.vn/uploads/vietchem/2018/12/hoa-chat-tq.PNG";s:6:"slides";s:64:"https://vietchem.com.vn/uploads/vietchem/2018/12/hoa-chat-tq.PNG";s:11:"description";s:327:"Sodium bicarbonate Trung Quốc. Là chất rắn kết tinh màu trắng,có dạng tinh thể đơn tà và trông giống như bột, hơi mặn và có tính kiềm. Ứng dụng tạo xốp, giòn cho thức ăn và ngoài ra còn có tác dụng làm đẹp cho bánh (bột nở). Quy cách đóng gói: Chai nhựa 500g";s:14:"specifications";s:4757:"<table style="height: 1119px; width: 723px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 203px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 514px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Sodium bicarbonate Trung Quốc</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 203px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Công thức hóa học:</strong></span></td>\r\n <td style="width: 514px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>NaHCO3</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 203px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Xuất xứ:</strong></span></td>\r\n <td style="width: 514px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Trung Quốc</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 203px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 514px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Ứng dụng tạo xốp, giòn cho thức ăn và ngoài ra còn có tác dụng làm đẹp cho bánh (bột nở)</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Ứng dụng trong chế biến thực phẩm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Trong y tế, baking soda còn được gọi là thuốc muối, được dùng trung hòa axit, chữa đau dạ dày hay giải độc do axit; dùng làm nước súc miệng hoặc sử dụng trực tiếp: chà lên răng để loại bỏ mảng bám và làm trắng</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Dùng lau chùi dụng cụ nhà bếp, tẩy rửa các khu vực cần vệ sinh nhờ tính năng mài mòn, tác dụng với một số chất (đóng cặn), rắc vào các khu vực xung quanh nhà để chống một số loại côn trùng</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 203px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="width: 514px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Là chất rắn kết tinh màu trắng,có dạng tinh thể đơn tà và trông giống như bột, hơi mặn và có tính kiềm </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Khối lượng phân tử: 84,007 g/mol</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Tỷ trọng: 2.159 g/cm<sup>3</sup> </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Nhiệt độ nóng chảy: Phân hủy tại 50 °C</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Độ hòa tan trong nước: 7,8 g/100 ml (18 °C)</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- pH: 8.6</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 203px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Thành phần:</strong></span></td>\r\n <td style="width: 514px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;"><strong>NaHCO3: 99.5%</strong></span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Clorua (Cl) ≤ 0. 002%</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sulfat (SO 4 ) ≤ 0. 005%</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Tổng nitơ (N) ≤ 0. 001%</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Phốt phát và silicat (dưới dạng SiO 2 ) ≤ 0. 005%</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Magiê (Mg) ≤ 0. 003%</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Kali (K) ≤ 0. 01%</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Canxi (Ca) ≤ 0. 007%</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sắt (Fe) ≤ 0. 001%</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Kim loại nặng (như Pb) ≤ 0. 001%</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 203px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách đóng gói:</strong></span></td>\r\n <td style="width: 514px;"><span style="font-family: arial, helvetica, sans-serif;">Lọ nhựa 500g</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 203px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bảo quản:</strong></span></td>\r\n <td style="width: 514px;"><span style="font-family: arial, helvetica, sans-serif;">Nơi khô ráo thoáng mát</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:49000;s:10:"price_high";i:59000;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:"2019-10-19 17:12:19";s:10:"updated_at";s:19:"2020-09-09 22:24:21";s:4:"unit";N;}i:1;O:8:"stdClass":20:{s:2:"id";i:14080;s:11:"category_id";s:3:"200";s:8:"brand_id";i:235;s:3:"sku";s:9:"106930010";s:4:"name";s:45:"2-Bromoethylamine hydrobromide, 99% 1kg Acros";s:4:"slug";s:43:"2-bromoethylamine-hydrobromide-99-1kg-acros";s:5:"image";s:93:"https://vietchem.com.vn/uploads/vietchem/2019/10/chemical-structure-cas-2576-47-8-jpg-650.jpg";s:6:"slides";s:0:"";s:11:"description";s:548:"2-Bromoethylamine hydrobromide, 99% 1kg được sản xuất bởi hãng Acros. Code: 106930010. CAS: 2576-47-8. Hóa chất có dạng rắn, màu be. CTPT: C2H6Br.HBr , được đóng gói trong chai nhựa 1kg. 2-Bromoethylamine hydrobromide được sử dụng để dựng các cấu trúc phối tử imidazolidinylidene với khung dioxolane đối xứng C2. Hóa chất này còn dùng để nghiên cứu các khối chức trong nghiên cứu protein, ngoài ra còn dùng trong tổng hợp dược phẩm, thuốc trong cấp cứu.";s:14:"specifications";s:6327:"<table style="width: 719px;">\r\n <tbody>\r\n <tr style="height: 17px;">\r\n <td style="width: 175px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm: </strong></span></td>\r\n <td style="width: 534px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>2-Bromoethylamine hydrobromide, 99% 1kg Acros</strong></span></td>\r\n </tr>\r\n <tr style="height: 100px;">\r\n <td style="width: 175px; height: 100px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên gọi khác: </strong></span></td>\r\n <td style="width: 534px; height: 100px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>2-bromoethylamine hydrobromide, 2-bromoethanamine hydrobromide, 2-aminoethyl bromide hydrobromide, 2-bromoethylamine hbr, 2-bromoethylammonium bromide, ethanamine, 2-bromo-, hydrobromide, 2-bromoethan-1-amine hydrobromide, bromoethylamine hydrobromide, aminoethyl bromide hbr, ethylamine, hydrobromide</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 175px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>CTPT: </strong></span></td>\r\n <td style="width: 534px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>C2H6Br . HBr </strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 175px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code: </strong></span></td>\r\n <td style="width: 534px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106930010</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 175px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>CAS: </strong></span></td>\r\n <td style="width: 534px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>2576-47-8</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 175px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng-Xuất xứ: </strong></span></td>\r\n <td style="width: 534px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Acros - Mỹ</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 175px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hàm lượng: </strong></span></td>\r\n <td style="width: 534px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>99%</strong></span></td>\r\n </tr>\r\n <tr style="height: 80px;">\r\n <td style="width: 175px; height: 80px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng: </strong></span></td>\r\n <td style="width: 534px; height: 80px;"><span style="font-family: arial, helvetica, sans-serif;">2-Bromoethylamine hydrobromide được sử dụng để dựng các cấu trúc phối tử imidazolidinylidene với khung dioxolane đối xứng C2. Hóa chất này còn dùng để nghiên cứu các khối chức trong nghiên cứu protein, ngoài ra còn dùng trong tổng hợp dược phẩm, thuốc trong cấp cứu. </span></td>\r\n </tr>\r\n <tr style="height: 125px;">\r\n <td style="width: 175px; height: 125px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất: </strong></span></td>\r\n <td style="width: 534px; height: 125px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Trạng thái: Chất rắn màu be</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Khối lượng mol : 204.89</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Điểm nóng chảy: 172°C -176°C</span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 51px;">\r\n <td style="width: 175px; height: 51px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bảo quản: </strong></span></td>\r\n <td style="width: 534px; height: 51px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">Bảo quản nơi khô ráo, thoáng mát</span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 175px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách: </strong></span></td>\r\n <td style="width: 534px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 1kg</span></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: 714px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 179px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code</strong></span></td>\r\n <td style="width: 525px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 179px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106930010</strong></span></td>\r\n <td style="width: 525px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 1kg</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 179px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106930025</strong></span></td>\r\n <td style="width: 525px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 2.5kg</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 179px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106930250</strong></span></td>\r\n <td style="width: 525px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 25g</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 179px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106931000</strong></span></td>\r\n <td style="width: 525px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 100g</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 179px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106932500</strong></span></td>\r\n <td style="width: 525px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 250g</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 179px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106935000</strong></span></td>\r\n <td style="width: 525px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 500g</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:17874000;s:10:"price_high";i:24749000;s:6:"detail";s:0:"";s:9:"catalogue";s:46:"2-Bromoethylamine_hydrobromide_MTR_CLP1_EN.pdf";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:23:06";s:10:"updated_at";s:19:"2020-09-09 22:25:16";s:4:"unit";N;}i:2;O:8:"stdClass":20:{s:2:"id";i:18688;s:11:"category_id";s:3:"199";s:8:"brand_id";i:217;s:3:"sku";s:12:"GRM1068-500G";s:4:"name";s:53:"Magnesium chloride hexahydrate, Purified 500g Himedia";s:4:"slug";s:52:"magnesium-chloride-hexahydrate-purified-500g-himedia";s:5:"image";s:60:"https://vietchem.com.vn/uploads/vietchem/2020/02/grm1068.jpg";s:6:"slides";s:0:"";s:11:"description";s:298:"Magnesium chloride hexahydrate, Purified code GRM1068-500G, xuất xứ Himedia - Ấn Độ. Hóa chất được dùng trong tổng hợp, phân tích hóa học tại phòng thí nghiệm trường học, viện nghiên cứu. Quy cách đóng gói trong chai nhựa 500g và trống nhựa 5kg.";s:14:"specifications";s:4911:"<table style="width: 720px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm: </strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Magnesium chloride hexahydrate, Purified</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>CTHH:</strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>MgCl₂.6H₂O</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code: </strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>GRM1068-500G</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>CAS:</strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>7791-18-6</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hàm lượng:</strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>97,00 - 102,00%</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ: </strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Himedia - Ấn Độ</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng: </strong></span></td>\r\n <td style="width: 533px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hóa chất được dùng trong tổng hợp, phân tích hóa học tại phòng thí nghiệm trường học, viện nghiên cứu.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Là tiền chất chính của magiê kim loại. </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Là chất h<span id="Catalyst_support" class="mw-headline">ỗ trợ chất xúc tác sử dụng để sản xuất polyolefin </span></span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Thành phần:</strong></span></td>\r\n <td style="width: 533px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sắt (Fe) ≤ 0,001%<br /></span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sulfate (SO₄) ≤ 0,01%<br /></span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Nước (K.F.): 51,0 - 55,0%</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất: </strong></span></td>\r\n <td style="width: 533px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hình thể: rắn, màu trắng</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Khối lượng mol: 203.30 g/mol</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Độ hòa tan: 100 mg hòa tan trong 1 mL nước</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bảo quản: </strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;">Bảo quản dưới 30 °C.</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách đóng gói: </strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 500g</span></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="height: 65px; width: 721px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 174px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code</strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách đóng gói</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 174px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>GRM1068-500G</strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 500g</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 174px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>GRM1068-5KG</strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;">Trống nhựa 5kg</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:178000;s:10:"price_high";i:247000;s:6:"detail";s:0:"";s:9:"catalogue";s:13:"GRM1068_2.pdf";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:23:58";s:10:"updated_at";s:19:"2020-09-09 22:26:32";s:4:"unit";N;}i:3;O:8:"stdClass":20:{s:2:"id";i:19200;s:11:"category_id";s:3:"199";s:8:"brand_id";i:217;s:3:"sku";s:12:"GRM1363-500G";s:4:"name";s:60:"Copper (II) nitrate trihydrate, Hi-LRTM GRM1363-500G Himedia";s:4:"slug";s:57:"copper-ii-nitrate-trihydrate-hi-lrtm-grm1363-500g-himedia";s:5:"image";s:60:"https://vietchem.com.vn/uploads/vietchem/2020/02/grm-00g.jpg";s:6:"slides";s:0:"";s:11:"description";s:364:"Copper (II) nitrate trihydrate, Hi-LRTM code GRM1363-500G, xuất xứ Himedia - Ấn Độ. Là một hợp chất hóa học với công thức phân tử Cu(NO3)2·3H2O. Hóa chất được sử dụng trong tổng hợp, phân tích hóa học tại phòng thí nghiệm trường học, viện nghiên cứu,... Quy cách đóng gói trong chai nhựa 500g.";s:14:"specifications";s:4405:"<table style="width: 718px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm: </strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Copper (II) nitrate trihydrate, Hi-LRTM</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên khác:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Cupric nitrate trihydrate, Hi-LRTM</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>CTHH:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Cu(NO3)2·3H2O</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code: </strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>GRM1363-500G</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Cas:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>10031-43-3</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hàm lượng:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>95.00 - 104.00%</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ: </strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Himedia - Ấn Độ</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng: </strong></span></td>\r\n <td style="width: 547px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hóa chất được sử dụng trong tổng hợp, phân tích hóa học tại phòng thí nghiệm trường học, viện nghiên cứu,...</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng để chuẩn bị màng CuO bán dẫn loại p (năng lượng bandgap 1,4 eV).</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Xúc tác cho quá trình oxy hóa của 2,6-dimethylphenol để tạo ra một loại polymer là một vật liệu kỹ thuật quan trọng.</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Thành phần:</strong></span></td>\r\n <td style="width: 547px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Clorua (Cl): <= 0,005%<br /></span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sắt (Fe): <= 0,02%<br /></span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sulfate (SO4): <= 0,02%</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất: </strong></span></td>\r\n <td style="width: 547px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hình thể: Tinh thể hút ẩm màu xanh đến rất xanh đậm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Khối lượng mol: 241.60 g/mol</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Độ hòa tan: 1000 mg hòa tan trong 1 mL nước</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bảo quản: </strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;">Bảo quản dưới 30 °C</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách đóng gói: </strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 500g</span></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p><span style="font-family: arial, helvetica, sans-serif;"> </span></p>";s:9:"price_low";i:499000;s:10:"price_high";i:691000;s:6:"detail";s:0:"";s:9:"catalogue";s:13:"GRM1363_2.pdf";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:24:00";s:10:"updated_at";s:19:"2020-09-09 22:26:36";s:4:"unit";N;}i:4;O:8:"stdClass":20:{s:2:"id";i:19456;s:11:"category_id";s:3:"199";s:8:"brand_id";i:217;s:3:"sku";s:12:"GRM2290-500G";s:4:"name";s:44:"Magnesium fluoride, A.R GRM2290-500G Himedia";s:4:"slug";s:43:"magnesium-fluoride-a-r-grm2290-500g-himedia";s:5:"image";s:60:"https://vietchem.com.vn/uploads/vietchem/2020/02/grm-00g.jpg";s:6:"slides";s:0:"";s:11:"description";s:330:"Magnesium fluoride, A.R code GRM2290-500G, xuất xứ Himedia - Ấn Độ. Là hợp chất hóa học có công thức phân tử MgF2. Hóa chất được sử dụng trong tổng hợp, phân tích hóa học tại phòng thí nghiệm trường học, viện nghiên cứu,... Quy cách đóng gói trong chai nhựa 500g.";s:14:"specifications";s:3052:"<table style="width: 720px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm: </strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Magnesium fluoride, A.R</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>CTHH:</strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>MgF2</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code: </strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>GRM2290-500G</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>CAS:</strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>7783-40-6</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ: </strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Himedia - Ấn Độ</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng: </strong></span></td>\r\n <td style="width: 533px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hóa chất được sử dụng trong tổng hợp, phân tích hóa học tại phòng thí nghiệm trường học, viện nghiên cứu,...</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Ứng dụng trong quang học, cũng được sử dụng trong kính viễn vọng không gian. </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng trong điện phân quặng nhôm và lớp phủ chống phản chiếu.</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất: </strong></span></td>\r\n <td style="width: 533px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hình thể: Tinh thể trắng</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Khối lượng mol: 62.30 g/mol</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bảo quản: </strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;">Bảo quản dưới 30 °C</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 173px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách đóng gói: </strong></span></td>\r\n <td style="width: 533px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 500g</span></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p> </p>";s:9:"price_low";i:3526000;s:10:"price_high";i:4882000;s:6:"detail";s:0:"";s:9:"catalogue";s:11:"GRM2290.pdf";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:24:03";s:10:"updated_at";s:19:"2020-09-09 22:26:41";s:4:"unit";N;}i:5;O:8:"stdClass":20:{s:2:"id";i:5889;s:11:"category_id";s:3:"199";s:8:"brand_id";i:157;s:3:"sku";N;s:4:"name";s:37:"Sodium hexametaphosphate Trung Quốc";s:4:"slug";s:35:"sodium-hexametaphosphate-trung-quoc";s:5:"image";s:64:"https://vietchem.com.vn/uploads/vietchem/2018/12/hoa-chat-tq.PNG";s:6:"slides";s:64:"https://vietchem.com.vn/uploads/vietchem/2018/12/hoa-chat-tq.PNG";s:11:"description";s:212:"Sodium hexametaphosphate Trung Quốc. Là tinh thể màu trắng, không mùi. Ứng dụng trong nhiều ngành công nghiệp, bao gồm làm phụ gia thực phẩm,...Quy cách đóng gói: Chai nhựa 500g";s:14:"specifications";s:3679:"<table style="height: 755px; width: 733px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 254px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 469px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Sodium hexametaphosphate Trung Quốc</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 254px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Công thức hóa học:</strong></span></td>\r\n <td style="width: 469px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>(NaPO3)6</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 254px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Xuất xứ:</strong></span></td>\r\n <td style="width: 469px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Trung Quốc</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 254px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 469px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Ứng dụng trong nhiều ngành công nghiệp, bao gồm làm phụ gia thực phẩm,...</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Dùng làm thành phần hoạt động trong nhãn hàng kem đánh răng Crest thân thiện với sức khỏe với mục đích ngừa bựa răng và chống làm ố màu răng</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 254px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="width: 469px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Là tinh thể màu trắng không mùi</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Khối lượng phân tử: 611.7704 g/mol</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Tỷ trọng: 2.484 g/cm<sup>3</sup> </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Nhiệt độ nóng chảy: 628 °C </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Nhiệt độ sôi: 1500°C</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Độ hòa tan trong nước: Có tan </span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 254px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Thành phần:</strong></span></td>\r\n <td style="width: 469px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;"><strong>(NaPO3)6: 65 - 70 %</strong></span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Clorua (Cl) ≤ 0. 002% </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sulfat (SO 4) ≤ 0. 01% </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sắt (Fe) ≤ 0. 005% </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Asen (As) ≤ 0. 0002% </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Kim loại nặng (như Pb) ≤ 0. 002%</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 254px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách đóng gói:</strong></span></td>\r\n <td style="width: 469px;"><span style="font-family: arial, helvetica, sans-serif;">Lọ nhựa 500g</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 254px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bảo quản:</strong></span></td>\r\n <td style="width: 469px;"><span style="font-family: arial, helvetica, sans-serif;">Nơi khô ráo thoáng mát</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:113000;s:10:"price_high";i:135000;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:"2019-10-19 17:12:19";s:10:"updated_at";s:19:"2020-09-09 22:24:21";s:4:"unit";N;}i:6;O:8:"stdClass":20:{s:2:"id";i:14081;s:11:"category_id";s:3:"200";s:8:"brand_id";i:235;s:3:"sku";s:9:"106930025";s:4:"name";s:47:"2-Bromoethylamine hydrobromide, 99% 2.5kg Acros";s:4:"slug";s:45:"2-bromoethylamine-hydrobromide-99-2-5kg-acros";s:5:"image";s:93:"https://vietchem.com.vn/uploads/vietchem/2019/10/chemical-structure-cas-2576-47-8-jpg-650.jpg";s:6:"slides";s:0:"";s:11:"description";s:555:"2-Bromoethylamine hydrobromide, 99% 2.5kg được sản xuất bởi hãng Acros. Code: 106930025. CAS: 2576-47-8. Hóa chất có dạng rắn, màu be. CTPT: C2H6Br . HBr , được đóng gói trong chai nhựa 2.5kg . 2-Bromoethylamine hydrobromide được sử dụng để dựng các cấu trúc phối tử imidazolidinylidene với khung dioxolane đối xứng C2. Hóa chất này còn dùng để nghiên cứu các khối chức trong nghiên cứu protein, ngoài ra còn dùng trong tổng hợp dược phẩm, thuốc trong cấp cứu.";s:14:"specifications";s:6330:"<table style="width: 774px;">\r\n <tbody>\r\n <tr style="height: 17px;">\r\n <td style="width: 152px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm: </strong></span></td>\r\n <td style="width: 612px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>2-Bromoethylamine hydrobromide, 99% 2.5kg Acros</strong></span></td>\r\n </tr>\r\n <tr style="height: 91px;">\r\n <td style="width: 152px; height: 91px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên gọi khác: </strong></span></td>\r\n <td style="width: 612px; height: 91px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>2-bromoethylamine hydrobromide, 2-bromoethanamine hydrobromide, 2-aminoethyl bromide hydrobromide, 2-bromoethylamine hbr, 2-bromoethylammonium bromide, ethanamine, 2-bromo-, hydrobromide, 2-bromoethan-1-amine hydrobromide, bromoethylamine hydrobromide, aminoethyl bromide hbr, ethylamine, hydrobromide</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 152px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>CTPT: </strong></span></td>\r\n <td style="width: 612px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>C2H6Br . HBr </strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 152px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code: </strong></span></td>\r\n <td style="width: 612px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106930025</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 152px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>CAS: </strong></span></td>\r\n <td style="width: 612px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>2576-47-8</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 152px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ: </strong></span></td>\r\n <td style="width: 612px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Acros - Mỹ</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 152px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hàm lượng: </strong></span></td>\r\n <td style="width: 612px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>99%</strong></span></td>\r\n </tr>\r\n <tr style="height: 86px;">\r\n <td style="width: 152px; height: 86px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng: </strong></span></td>\r\n <td style="width: 612px; height: 86px;"><span style="font-family: arial, helvetica, sans-serif;">2-Bromoethylamine hydrobromide được sử dụng để dựng các cấu trúc phối tử imidazolidinylidene với khung dioxolane đối xứng C2. Hóa chất này còn dùng để nghiên cứu các khối chức trong nghiên cứu protein, ngoài ra còn dùng trong tổng hợp dược phẩm, thuốc trong cấp cứu.</span></td>\r\n </tr>\r\n <tr style="height: 125px;">\r\n <td style="width: 152px; height: 125px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất: </strong></span></td>\r\n <td style="width: 612px; height: 125px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Trạng thái: Chất rắn màu be</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Khối lượng mol : 204.89</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Điểm nóng chảy: 172°C -176°C</span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 51px;">\r\n <td style="width: 152px; height: 51px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bảo quản: </strong></span></td>\r\n <td style="width: 612px; height: 51px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">Bảo quản nơi khô ráo, thoáng mát</span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 152px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách: </strong></span></td>\r\n <td style="width: 612px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 2.5kg </span></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: 776px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 154px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code</strong></span></td>\r\n <td style="width: 612px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 154px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106930010</strong></span></td>\r\n <td style="width: 612px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 1kg</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 154px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106930025</strong></span></td>\r\n <td style="width: 612px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 2.5kg</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 154px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106930250</strong></span></td>\r\n <td style="width: 612px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 25g</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 154px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106931000</strong></span></td>\r\n <td style="width: 612px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 100g</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 154px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106932500</strong></span></td>\r\n <td style="width: 612px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 250g</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 154px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106935000</strong></span></td>\r\n <td style="width: 612px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 500g</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:28598000;s:10:"price_high";i:39598000;s:6:"detail";s:0:"";s:9:"catalogue";s:46:"2-Bromoethylamine_hydrobromide_MTR_CLP1_EN.pdf";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:23:06";s:10:"updated_at";s:19:"2020-09-09 22:25:16";s:4:"unit";N;}i:7;O:8:"stdClass":20:{s:2:"id";i:14082;s:11:"category_id";s:3:"200";s:8:"brand_id";i:235;s:3:"sku";s:9:"106930250";s:4:"name";s:45:"2-Bromoethylamine hydrobromide, 99% 25g Acros";s:4:"slug";s:43:"2-bromoethylamine-hydrobromide-99-25g-acros";s:5:"image";s:93:"https://vietchem.com.vn/uploads/vietchem/2019/10/chemical-structure-cas-2576-47-8-jpg-650.jpg";s:6:"slides";s:0:"";s:11:"description";s:551:"2-Bromoethylamine hydrobromide, 99% 25g được sản xuất bởi hãng Acros. Code: 106930250. CAS: 2576-47-8. Hóa chất có dạng rắn, màu be. CTPT: C2H6Br . HBr , được đóng gói trong chai nhựa 25g . 2-Bromoethylamine hydrobromide được sử dụng để dựng các cấu trúc phối tử imidazolidinylidene với khung dioxolane đối xứng C2. Hóa chất này còn dùng để nghiên cứu các khối chức trong nghiên cứu protein, ngoài ra còn dùng trong tổng hợp dược phẩm, thuốc trong cấp cứu.";s:14:"specifications";s:6329:"<table style="width: 680px;">\r\n <tbody>\r\n <tr style="height: 17px;">\r\n <td style="width: 187px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm: </strong></span></td>\r\n <td style="width: 483px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>2-Bromoethylamine hydrobromide, 99% 25g Acros</strong></span></td>\r\n </tr>\r\n <tr style="height: 107px;">\r\n <td style="width: 187px; height: 107px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên gọi khác: </strong></span></td>\r\n <td style="width: 483px; height: 107px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>2-bromoethylamine hydrobromide, 2-bromoethanamine hydrobromide, 2-aminoethyl bromide hydrobromide, 2-bromoethylamine hbr, 2-bromoethylammonium bromide, ethanamine, 2-bromo-, hydrobromide, 2-bromoethan-1-amine hydrobromide, bromoethylamine hydrobromide, aminoethyl bromide hbr, ethylamine, hydrobromide</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 187px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>CTPT: </strong></span></td>\r\n <td style="width: 483px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>C2H6Br . HBr </strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 187px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code: </strong></span></td>\r\n <td style="width: 483px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106930250</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 187px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>CAS: </strong></span></td>\r\n <td style="width: 483px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>2576-47-8</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 187px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ: </strong></span></td>\r\n <td style="width: 483px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Acros - Mỹ</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 187px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hàm lượng: </strong></span></td>\r\n <td style="width: 483px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>99%</strong></span></td>\r\n </tr>\r\n <tr style="height: 91px;">\r\n <td style="width: 187px; height: 91px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng: </strong></span></td>\r\n <td style="width: 483px; height: 91px;"><span style="font-family: arial, helvetica, sans-serif;">2-Bromoethylamine hydrobromide được sử dụng để dựng các cấu trúc phối tử imidazolidinylidene với khung dioxolane đối xứng C2. Hóa chất này còn dùng để nghiên cứu các khối chức trong nghiên cứu protein, ngoài ra còn dùng trong tổng hợp dược phẩm, thuốc trong cấp cứu.</span></td>\r\n </tr>\r\n <tr style="height: 125px;">\r\n <td style="width: 187px; height: 125px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất: </strong></span></td>\r\n <td style="width: 483px; height: 125px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Trạng thái: Chất rắn màu be</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Khối lượng mol : 204.89</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Điểm nóng chảy: 172°C -176°C</span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 51px;">\r\n <td style="width: 187px; height: 51px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bảo quản: </strong></span></td>\r\n <td style="width: 483px; height: 51px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">Bảo quản nơi khô ráo, thoáng mát</span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 187px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách: </strong></span></td>\r\n <td style="width: 483px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 25g </span></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: 678px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code</strong></span></td>\r\n <td style="width: 479px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106930010</strong></span></td>\r\n <td style="width: 479px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 1kg</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106930025</strong></span></td>\r\n <td style="width: 479px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 2.5kg</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106930250</strong></span></td>\r\n <td style="width: 479px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 25g</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106931000</strong></span></td>\r\n <td style="width: 479px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 100g</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106932500</strong></span></td>\r\n <td style="width: 479px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 250g</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>106935000</strong></span></td>\r\n <td style="width: 479px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 500g</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:1137000;s:10:"price_high";i:1575000;s:6:"detail";s:0:"";s:9:"catalogue";s:46:"2-Bromoethylamine_hydrobromide_MTR_CLP1_EN.pdf";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:23:06";s:10:"updated_at";s:19:"2020-09-09 22:25:16";s:4:"unit";N;}i:8;O:8:"stdClass":20:{s:2:"id";i:18690;s:11:"category_id";s:3:"199";s:8:"brand_id";i:217;s:3:"sku";s:11:"GRM1068-5KG";s:4:"name";s:52:"Magnesium chloride hexahydrate, Purified 5kg Himedia";s:4:"slug";s:51:"magnesium-chloride-hexahydrate-purified-5kg-himedia";s:5:"image";s:60 """
* * @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_cac-loai-muoi_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_cac-loai-muoi_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_cac-loai-muoi_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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
"cac-loai-muoi"
/** * 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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" } "slug" => "cac-loai-muoi" ]
{ $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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" } "slug" => "cac-loai-muoi" ]
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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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: "/cac-loai-muoi" #requestUri: "/cac-loai-muoi" #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 | "/cac-loai-muoi"
|
QUERY_STRING | "" |
REQUEST_METHOD | "GET"
|
SERVER_PROTOCOL | "HTTP/2.0"
|
GATEWAY_INTERFACE | "CGI/1.1"
|
REDIRECT_URL | "/cac-loai-muoi"
|
REMOTE_PORT | "55098"
|
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 | "52.90.181.205"
|
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_USER_AGENT | "claudebot"
|
HTTP_ACCEPT | "*/*"
|
proxy-nokeepalive | "1"
|
H2_STREAM_TAG | "101-3"
|
H2_STREAM_ID | "3"
|
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/cac-loai-muoi"
|
SCRIPT_URL | "/cac-loai-muoi"
|
UNIQUE_ID | "ZfmYokdvwXXP2kRtgqY80gAAbQo"
|
REDIRECT_STATUS | "200"
|
REDIRECT_H2_STREAM_TAG | "101-3"
|
REDIRECT_H2_STREAM_ID | "3"
|
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/cac-loai-muoi"
|
REDIRECT_SCRIPT_URL | "/cac-loai-muoi"
|
REDIRECT_UNIQUE_ID | "ZfmYokdvwXXP2kRtgqY80gAAbQo"
|
FCGI_ROLE | "RESPONDER"
|
PHP_SELF | "/index.php"
|
REQUEST_TIME_FLOAT | 1710856354.0589
|
REQUEST_TIME | 1710856354
|
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"
|