{"format":1,"manifest":{"name":"laravel-snippets","publisher":"vyloxi","version":"1.0.0","displayName":"Laravel Snippets","description":"Routes, controllers, Eloquent, migrations, requests, jobs, tests and Blade directives. Install the PHP and Laravel Blade extensions for colors.","engines":{"ferrum":"^0.1.0"},"categories":["Snippets"],"icon":"icon.png","repository":"https://github.com/voukengdongmofrankysteve/ferrum-market","license":"MIT","contributes":{"snippets":[{"language":"PHP","path":"snippets/php.json"},{"language":"Laravel Blade","path":"snippets/laravel-blade.json"}]}},"files":{"icon.png":{"encoding":"base64","content":"iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAl9ElEQVR42u19ebBcV3nn7zvn3N5ev027LC+R8AKWN7ymKMZmtU2RZGpinkIRlqEyw6RmElKDKwlUBmRBMJWw1IRlBhgmBkINjDQ1NYEixqsswwCy8RJsywu2JcuWZEmW3tbrvfd83/xxb/fr5d7bt/v1e37yqKue1Le773LOd863/r7vIwz42jk1pad27WICBADkuuvMQ/XSG1z23+SRXO6xvNGKnKGJNlmBgECt50vMe0A6jpNfqa4TvqGWw857UOQ1AJG46yc/S7/ndp4ngGgiYpFDCnLYKP2Igjycdejn78iuepL27PHD69KuKahtu2AHoSP1e8J2QN0CSIPwv/rtKy6uivd+l/EuQM4vGJ3NKQVDAcWzWgWjSZqoDoIRkidOEo87FlAEESRi4JHXFElxv4jPeow3cQG1PS+hzgwA8FhQZ4uy5TpBnnG0uj0v9L13PvTYY42FcAtAOwBesgUgU1Oadu2yAPCzqy+93kL+3Iq8bTLjqJxSGDUaI1pxTikxigggUgC1DiyO+P3t7uTrdO58iTmHYr+Ttt3bz7MkndcPx2i8bLCcxGeWGguVLauS9VFnwYznswLu1YTP/95DT9zZ4MzbQhoNbQG07vrdV15ykVL4W030rjHHoKg11maNn1daASCGEMvCah6U1Utfi0EG3n3Sdp4M9gySjkv0zy3auSIRQCABRGqW+RXXN2XLmPN9sMjtRum/+N1f/frxfrgB9Zb10A35sueqi28Rok+MGZNZkzG8LuOIo5SyImQTRp9IsL7Ye+dkSeIOkpT3CM6VwRbfkHZ80hxFcRgCoInEZ+bjnk8nPE+VfOuK4HM3PfLELZ20G2gBNNjJnitev5F09racUTeMaY2zclmb00r7IuBOBUpWLuGjiSCpCL2UrD5xbD0WDQEwRKgx20M1V89bixr7dwj4wzc99NSRXiIhdgHsvu4689Y9e/z7rrzsKq35H/Nabzwjl/HXZzK6sePjCN9rUIMSvmtnLAHhl1PGD0r4zhcDUAAUkRyvu/ZlzzVVy0dci3/53kefeLBBy6hzVdzObxAfiu8YNWbj+SN5f30mY1wRatv10r3rpWVQkqDgSV/HC9cS6d4JSey+VdETkcRdn3g8wD3TPG8nu086N+o+BIAh8IRpbdYxr8vl/FGtNzpK7vjBZVuveuuePf7OqSmdigPI9u2Kduzgu6+49Gqj5Sfjjpm8YCRvM0ppT6Sd8API+ZWw4/u2MGT4Oz5Jzvfa8ZJgRbEEIsFjts9Wanre+tNsceO2f973QIO2sQugoe3/8pqL1tWYfj2ZcdadP5K3RiltQ+IPi/BJRIgyDQcnggxuXQyoVC4H4ZN0IQnEAXxm+3y1pmc8/1g2oy75vb2PH+u0DtpEwNapYEFUmf6h6Jh1mws53wmJjxRsrJ9dL4nsUCJZYH9st5vVS9pnSCliJAW3aL+HJGr3vVh93Fx3zhEAWBEYpfRZ2aw/YvS6qsv/AABbOza9bnXyXLRrn/0XV1+yfdSYP9qUz/iTjmM8lkTP3GmTrj+TrpdSOciOj/s9A8hppUjg10XOe2TDGvmDI8d375ya0rv27ZOmCGjIhp+96eILPB+Pbchm9XkjeXJZiE6bdMuu2Uc/r6S8Z/cicIhkf6UqR+uuVdZcvO2xx56W7VC0AxyKgB0AgKqHL48Z45yZzYrPQoOw+n41+37Zbi92LykUPBnKPZPYvSxKs0cK60d6jLXVQrAitDGTkaLRjkvul1tIDrVzakrTDvB9V1/61qxS169xHJvTStuEBzlt0i2dSZd2jlLrVCKwIshqpQPa6ut/cMXWtxLAO6emtAJ2AQDqwp8aMxprMw5azb1emv1yE77J6mMUvDSEH0ypTK8ED0p4iVHw+pnvKK5IAHwRrHYMikbD9+ynAAC7dgV0/uWbL7uw7Npfn5PPq7NzWWosgNMm3atv0vXvqYynmSHCoVpdXqzW2RBdsu3RffsUAMzV/Q9NOBm9xjHWysI6PG3SvbomXf9iLZlmVgSrHGMnMkZ74A8BgHr8wgszvuDdWUXIKVJ2Eex+kEH1JsLSEj5u58Yt1K5FnaBULpbw0gfho4jf+TsGkFFKZRTBsrx759SFGfPKKL1OM51b1ApEpNAHmz1t0g3RpKMBMAfSnykuAIhIFbQGSJ1rn6XXGV/o2hGjsiNaM4soOh2lG1qULvUcESC2xxjUAoRpMT4YFqCgNI8Yla35cq3xhK4ZVwp5RcKvEuEl4uTXSrCm5xxRgPtSBQJ0zDMpQOoCrktsAD8t3RiCjIJklEJJvGsMQ7Y6RNBE5CehY09H6RYVpYt8XgVwWZC/xMH6j40AroA6/e4KEB946dZ52EMCyvQC3fTmZpqIDBEY2GqUyKYGqjSdabVIk06plvMkALpFKDH/X5h0DFCOsPq9OehxAqod4TkLoEio7PVQf8FCjVAzjjcop5YWWitgk1FKbcoqBUVEfmu8fxF2auyDMIPL5S4tGsYBZbPBQlgCwic9b+SiXo5gjQb8OcHE9VlktxrIrIAU2mCcwgBZYP7nbtOvuygRvRAqpgwRSNEm44tIq2RZbAQq9jrMoFwemcuuAIgW5D4R7PGjsAdfAIzpWgSvtShdIwQnLmBWK6x6Tw6ohsTvYP+UBexRRulhF5QjCC/C+RZhEfgiYtDC+qVNBxiiSQeCeC70OZsx+oWvdv2++qP/jdJffwo0OQmx9rUfpSPA1gRrPpCH3qCAOWkJzLca7YTyoy78GYEqRrP/vhZ1xzEJyCyLghdqNiIC+B6gdPBry4DWgOtCWrSfU9mk65k1pABbAwoXGoy/MwOUI4jfMPt8YPan9eb3fflgeuQiND4wne7NpTLp2pRApRY8G0o1FwjkFDfp0sZHrGDNthyQIaAUs/tzgLvfR/V5C8q2s/9FER4LuoQAMJ3uzaUy6RL1BXkNmHRpxq0AO88YuzaD3KVO7O4XAShDmP25C1sSmHEC2x7iJw3hIw5Nm3kg8X6AxRK+rwTJpM+b4qQ1wU+SCU8UQzxZvigdBOIBeoywelseSfk6ZACZE5Qf9kBZAvOAhEcSZD+4jml82gkqXIodn3RtjklS6DQjhSXat0AUzw6tDTEE7QYoaTM8zb7HPJEGbEmw5j15OOfowOzTMRMxQqjsdVHtsv0HJzxiAlqGeqRNDwt42U9+fOR1WEC5Asgxza3feFau1yBuHa1uNGmhHBVG2ojd4CRcKkE6bKthE77J+quC3GaNid/JAaUY4rfQYG6vFx5IX7iHXoRvQEQEEUrgUkbpmlxG+hcDQgpSKyNz2eVY9em/gTADikIrQqF6/26c/Mx/giqOBt+FBBbfBxVHsf7r34aamFhQNkjBfeoJHLv5TwHHaakDIMMlPNq9eqtvyoPyBMzHaP4CUAbwjzLmH3ZBOSQof/3u+FgdYHmidDKA/G+T1bkc6k88Bq6Uodetb/td7po3QU2sgtSqgVkpQUkSrtVQuPIamDPP6vY97P0luFKBmpyEWH8gky4V4RVgy4LilQ6Kb04w+1ps/9KjLrwZhi52O3+SFLyefoqI51dRJVKWCniJQfF3IoAx4JMnUN19V/Cl7wf/M0OvXgPn/AvAtVrgdJJQWbQWuSuvWfg9MyACrpRR3nM3UMhBQvV6scDLSOKHYV7KEdb9YSGIxSZNRNP2r0WKiLb7Shp2LzE0XThWFAcxXgbgZdQIY1ExIkDGQXXPvaEvXTcDSQCQfeNVEM9f0AOshSqMIHfFVcFnSjVdz7VfPQDvxRdAmVxIvMUDLyN3abj7V/9uDs4WDanGpeOGuz8L1Pf7qHTY/r0I3w84tfNcFcXGesGw+kHOor/CSPEwLLagXB71J5+A9/yzAVGZmwTPXXk1KJ8LPlMK4tZhzvktmM2vWzAfw9+W7rwdYEFn6Zq03K0X4Rv+fnYBZ6PCxI1ZoBb6+xPGjwxhJrT9oSM2z5Awiq3nKmm9wDIAL9PqAZGD0hpcKqGy554Wj0lA1Mx5F8BsOhPiuoBS4Hod2csuBxkDWBtcUSn4x4+i+uBeUL4QKJFDBF52u3wFa7flodcowE0ux0EG4DkJAj8dnr/Wiy8GoxitA4RCQWR5gZfJ+PiYQbEAmSyq998XKG4NMcAMymaRvehScL0WfKZ1IP9bsVAAKvfdC//EccBx2pbXsICXACAqsPmLlzkYe0s22t2L9rAvcoTK4x4qL1hQNhQJPQjfKwklzaJWEmGr90w7WkQ2T/Ii6DGoMKTsPvsbuPsebzqHGg+Tu+qawL73XKg1a5G9+LL2+IMISvfcCXKcxFSyvuR81Lkh0GPt+/Ltpch6vGb3uiDpLpPXL+EllVgLjlQvh80wc+niPE3ST0qVIki9hsq9dy98GaKMspdeDjW5ClwuIfv6rdCTky22P6H+m6dR2/cYKF+AMC+K8LHnasAvC8bfnEHuQgNUJF7x67T9H1pg/5IS3NE/4duvo+KIP9RcOqR3APVMsAi5QOXnPwXXaoEYCH9sNmxE5rzzwaUyclf/dheHKN11B7hSaS6YoRI+BHiyCzirFdZM5YFqD+I32H+WMP+IB28mCNB3O6F6mHSpE0lauEf4pUIM+1/qXLpe2P5YUIYIkM3Ce+EA6o88tEDk0AOYvfRyIJNB/sqrF07SGlKvoXz/blAu1/QWDo3wLZq/rTLW3JSD2dBb8QMQWAYeMPOzMO5PC39CAgllgoR/cfkDvTK0JEaZUIs16RZL+KaJpjWgNETp4H3nn1ItEUFA2Ef53ju7TLzsRZcgc+75cM7Z3Pbc1YcehHvgeVA2tP2HSfhQm7I1wchWg4l3ZpM9fh3KX+05H+VnfJAhsCdgP/gTP0AEc/h/433z2OsNgJEYb1ETDyBd1TKXAngpienl7Lqw0zMQUGiyRTlVCKowEvoEGJTPo/rAL8Bzs1Bj400O4Jx5NgrXvgWkdfC7cGHM33l7IPfbkEdDLmRlBev+oACKA3pEvTQw9ysXpAA9BoilhNrFHUEjTbA1AbvtmqMkAAA6F7HplNW0JMDLGD4YyuL8NW/C2s99EchmmuZau5akYKdPYvbb32za7uRk4R0+jOoDv8DIO25sPoSeXIWRa9/Wdg974hWUH/gFqFBYCA0PMeuZNODNCSavy6JwqQMpx0f7uth/RbD6xhxW35BL7zVjAA7gTzOe+cwcpBb4EbqyhlK4ts1SoXGiIlASxfoBOJu3wNm8JXHMdvokZr/7LYhvF9y9BJTuuStYAOFnamQE2a0XLcThAZR+eh/8Y0ehxyfaQKdDqU1MgPUAM05YGwI9+i3Brot9nmEBjCsc/n4F9WMMM04QK30EiKI4QB94gIGBlxI6ZKjTKS0LYdwoQUkKdm6uPbLIDMoXUH34V/CPH4NZs7bpGiYThHgpjBXM331HoAiKLIrdR42NFMAlwfr3FJBJAnr0ImhKX4EwQEXC/C/qOH5XDXoUC8RPgVHsVBTVspRHaZ5HAfafKJi5hvKmFMiY6D8nAzIGKpPpAnrAceCfOI7K/71/IeDT5A7BsXvgeVR//ShUvoBWbFVfvv8450sL0GNVD6BHqrrtvf4AkAPYOcHB20oQhKlkPQNE8RzNNAASSwq8bEJ3LHh2JrTdBamYZSsHiEIfGwfz99yB4tuvX5hJAsRakNaY+/EPIeUy1ETA/hebWdNlNltg3U0FUJ4g84tYAGl3/xjh2K4yKvstnAmC+P1xs8a8NTn+znPWy+a1a7Bl1STcDvk4dMStUqEm3+M6UTJMgrSyuJWsisXI+3K5FNn5Y1DCt7J+WxaMXZnB2X81Gnj8aImJnydUf+PjyU/OgGgwMcYiyGiNg/MlvHDsOAysD/vKcfjiQ8YnQVpDLPcHkU4LtWYLOzuTqrtHpAKjdex3/sxMNFfReig7vhvbD6gcYf37CoCV1sDk0rwUIL7g4LdKkLpAFaLQwj1qBxGBiODNzqB+/ATY9WAAAhSBZ2fhV6rQk6sDc0kkBEzSEHPpQh2g/ZO2c6k9f6FDiZRYGBYZE9ODR4aSS9dmlWrAnxWsf28e2XMHVPz62f0WoHHCK/9Yxdw+D05HnkCaolGkFKzrwjt5AlSpNLGRpqncaQ3xPNijR0DFImhiEuRkAij2MHPpWgLdQwVeDloeFunT0hsMxtYBZ73CqhtzkEoM66IYuC8NwPpzQP2AxUvfL0OPtO98SUF4sRbuyZPw52YhzHC0hrAN8gKaUbqQRQgRpFQCqlXQ2FjgZVMq0kxbjly6xdbFGVouXasb2hec8a+LMGdpYFaAQkotnwG4AwDkDeHFb5fgzQnMaHeWUCSXVMFq80sleDPTYNcNFoNSbWOP9gMoBRGGTJ8EV8pQo+OgYjFYIJb7Q/YOIZduRRC+cRiWczlxdw0n7q11LY64MjDiCZxJhbM/Umx67VKx/jHC9O46ph90oYsJxG8QPjStbbUCf3Y2iH4SBbpdBwaiOxbQMT2igsxd+8oxULkEGhsH5Qrhaualz6UbIuGHlUsXBKIE8/8cFG0QihijRBSDmBesujYLKlIQKFK9Y+OUAbyjjIPfKYEcip7DFsITEaxbhz87B1uab2Ilknogms6sEepEjTTEQqUCVCqgfAFqfDzA1IUoneWseLmkhE9wo3ZOnypQb9O1GbQJInjjlznNQlCU0uw79I0Sake5S/Hr1OxtvQ5/bg62XAqQU0q1B74iSs6JhMmhvVqUNWx4ASDVCrjashBy+WCRsG0Kka4J6UzO7KOmwHBYPfUn42OXD3XBs6VjsiKdLwyoLFA41wBeb0VQLECjhPkHXBzfXWuX+00Zr9p3fEj4BvwtEc5HC6s2UgdIrlfXshBqVSCbhSoWoUaKQTyfpemTF6UE1hLsQgAn+sFaEzejPYTpiS8du5Wi/Q4xGqh01UhpvU5ng0paWPTGCESoayEQwL7AGSdkN2jAl2R/gQSRPTsrOPD3pQVPKktbfgNXKvDn52Cr1eaOb0U6oWeSjrSLgDRdN7sXggD1GvxaFTQ7CzVSDExI4wTTUi6RjI0zZTIszERE0tW6VbqnPqamQZe+FX3M4XVU5LnUQ84TuGsZtp0rnUuLICwkM9MajgMxHZguCuL1+bMc6DEF1JP5f8Pd+/K3yyjv9+FMqAAjoAhiLWylDH9+HlyvB9FOpboCXcnheunWAaQDD9CXTKXA3BDPgz99EpibhcoXROULGP/DDx0ee+/7j1Iuy2KZ4mONw3ChxbqPls5B07ijVjJz152TR775lXNsqWxgdFupdvGB4vkOkAGkilinkTBABaDyuIfDP6zBjBuIZVi3DlsqwVbKEM/rSIlPED+SHKiTzuTQRRWHbET2iISPHqHiH//p4VUfvfl5AA5e+y9ac9O2w2bNam//xz92QQgFogZRVQYYucAEYV/q4SuwCgduq8BWPABV2LkS2K2DG+imkM33V04vnjuYNOlfqU26ICWb1Jq1dvUf/9nLABz2faWUktf6CmDm7MR1b5/OXfCGcu3JJ4rI5QXCJBYwYwr5swzgxct/sQKaNHj5f7yC4/cegs56YNcPvYcqgLj1XUcxOak3BQcYwKQLMnlF5fMceCKVdConr8WXeB7BGFA2x01YGwHsCgpbDPS4Arxo+R8Uv9CoPlPFs3+3HwQf7Os2pS6tjO/X7DW9gB19+exFII4j/MpxM/vD/7Vq1Qf/zSH2/SyCSqTCIsOJlxGwpLHXfl/WQmezbvW5Z4u1J/cVJZsVMBNpgC2heIETFHuYi5P/BGQIz33xBXizPsyYgVjpqzR+PwGthr4n1MUBhlAeRYTEyeD4528926zd6I69693TiY2KXwsvrVF9/rnige2fOFe8uqJcXoQ5cKezh5FzR0KgikSz/gkHx390HMf2TMOJIb6k3PFp9APp5gAyvPIozIAxkPl5c+gjH3j98YsuLelCwTJbAqVvhtD6JYOgMlmobDYIJxsHpBvwL2pzxYlIQvhYYv0AHNFSWaIa7EY5qFhQeeqJUSmViI2BnDxB7LrgugvSjMI5qwA34lQBkFFwD9Xwmy8dhMoqMEsfCGxZVD8FaS0Tt5goXVdxSJHAHjYG9V8/UkQTVxCzsoW6JFf39dFUiKBVUPRJaVAmA9I6SPgEgRxngWBN6FnoZaCU/g5pZ6rSyDwiQNwgG4N9H+L7YN+D+DYIpwMQ329G47jOGDm3AGddBvC4S2oJC6hosP+z+1E9VIMz6TQBnktJ+NYjk7Y8St+l4hq7r1CQobIxWaheIiJArQahgLkIUeADR+ggcZyF1aM0yMlEJqe0gVeJAN8H++4CvtC3YR2hwBnTjKo1YEBBijo17HMCAK3AHmN0axFqVENmfJCmdtY/ZjBz3zQO//A4nIkY1j+ggteLi0voeDMYUrAm9rfMtFSDak54Ey/OIe6fwL4P1OttHCTdwo4aFy1wsBY+TkrFzgMhqGk4fkmxPWTY7OGmYGd8PP23B0IpRj3EcB/V2SSZ8K3Q8J5+gIEJv0g7NfWguspoUVtcvFV8EFGsO5kQFsmghZXS/byUEm4W5PWZUY2xrUXAZZDq2P0TBge/dAhzT1eQWe1AfFm0STdIaXwzKAyrP9gVhRyn+wpdk4rW5khJOYsx0T5qj8v3AJ6SNMMtElmoaiCoGgHsMXJnZJHdkAns/w65X3poHge+exjOuIH4MrBJt5gMLZG0HGDQFm6kmKxVJBzGUaSrJQ7FRASSYuaC7pb2lBDTj//tQgd11joEywstGqNIBOsKRi8YgZowkHm7kHpBBPEZT/3NAXCdoUdMW1qXLCHho841soTFIU2tovyRog/H8YOQFvWeVInXWBfHAqOvFbAlIT03l2XjgLVO3cEsrjQ+UcDmxy8bDbB5IZMJ3L0ODn/nCKYfnoMz0ar1y9Ba5PXK10jUAYbUwk2IGSP/atve9Td//BEq5C2sJRCtqJiAhLtdOw4f/u7fn/vyN772FqlWc6I0pENz66vbGQt0QWP84mLT/BMWIKdRfaaM33ztxWDnsywL4aMqtETrANLNWvtWQBSxqVZU4fe37T37K9/8CYCRU8CXR2ff/Im9mfUbKvv/8mO/z1q3Oe36UoJDAGhmtYP8mbmwFRw1ewA884WDcGd9mDHdwfqXbscn5Xuaps0+qILXAZIha5UdGfU2fOwvHwYwwm7NqEyOmX1aiZRXSgkzE1x/fMP7P/zsS1//6lF6/rkNfiYjbfpASuuHiOC7FoUteehVBlJlgAN377EfHcexPSebvv7FmnT9ZGglJIcm1Lvr26QL5B0bzVQcDTwnxoQQNrNiQ8JBuNonAEzZnNcoIUODWD8hBGzi0lEgo4CSBbKBu/epLx6AyqqQ9S9Pt7O4+zQbRshQbXkh1lqcudnsK9+97bwzbv74L+H64zArm/+z75PK5cpzDz2wsf7csxvYcQQiNIj1IyxQGRU4gHwJACFFjef++nlUD9WRmXTAVpa86VXvUj8RmEAZRuhRAN84OPmt/3pdZuMZpTXv++CzK10BUMbI3EMPbHz6Tz7yO3BrDjsZoQSUb6KL1Rc4EwbFLXmgaqEmDaZ3T+Ol0N3LKXz9S0l4aVFvRQC6beMqOdNROMvRTbzCon32RCBrAcswv7XliMrnXLGs4tAA3Fc9gqTuhv03tgwb11L1+ec2Ub2uOJT9feceCECK4Fd8jF9SxJX/fSvAAlsX7P3gY6gcrEHndHe0b0gKXj+tYw2AIz7jZcu9/AADRqBYIEHJN6H9z220YTQwDp49iAzrihgOnHYWeOHEccCZjFAH8fuS1SSwHmPiklFQVgEKOPjfDmLu6Qqyqx2wL0tq0qWF8/WOBQwj9BjWhPEyGRnUXEnNEoeRZRxg+kkWoQtRyAXGLy4CIxpzP5vG86G7l31ZEpNusU2vjMQ0axhW6DHYURKLzxfp7lgSj/uX2HPjgzwR1xWJzS8YWAkmgG0g/8ffMAKULPZ9/gBsnWFGTJviN0yTbpDN0Y0IkuRiT8ttpy7Ljh9yJJMAsCfIb8oge24BL333CKYfng+0fl+W1KQbpNeztPsBaMlCjx1BPaQtByNRS0kGTQ5Nzt3ruQikGTmMD34pgl9lrLpyDO7hOp76u4MwIzrW5Bu2Zp8eCNKhAwTeaI4Oyy7CXAlj8kzMimK6ksZGAtsy9IJ/4n+bcF2R2Pv0TDmTdluDlWpMUqKFsOrKMTz9xRfgTnvIrHIiWP/SEz5NtxaJKxAxTAdF1nVVPZtzRRtPYsKsrYRJLB5F/UYjebB0comM+JFTreR9bcAxmc62zsifmUNpfw1H7jzRZvMvlUk3iPUjLXMpIjBLFIgQYkH2Le/48es+8cl7VXHUJ5/Jqma9hGaBzMR6uCvlZZS88PWvXHbsf35/G9zaiA2C+9ReC5HALuPA91+OWKxLZ9INCudrcEcjKRpE9GWnEnHWdVXmurf/0/nf23UbgIlFdI9dMc7CN3zuS/+UXbdh7oUv3PpnogjU0W6OFOBXgoJaZKh38GhIJl3fhO+EJg459CjErLxsrrbl45+8B8C4rdUMHOeUzw3U9frqLf/xLx558XvfPuAcPrzZM4aD9lDt7eGD0O/Kt366ewdLfPv4fk06qzRnV69yASg4jmitT/kFYK1VGmAymbrEWhTtCsRKJnwHHmBooUcSpThTLRde/Op/vnzLrV/8Mer1NVYp0adwhrDn+8oZHZ09fs9dW/zDL22xxki7UvvqmHTD8Hd04QFokYMSEfK0wfSuH0wd2nDGzKaP3vzoKS7/yclk+MS9d29+8mN/8m/h+xk2Rlo9nK+mSZcGo5hULp6+sX5SznQUzgyjgRjCoII69AwlDFq/cb/KZGrMgeoUNyiOrPTRXx4CeoBMOSauKL3q/AmoduTQecb3lWeMkDDJMu/4gTO0It5rAEct46jlTj+AxLaM6S91TGCJxJKBc+Tw5s5+BukCLjIwC5QOR4L0tYNi7mEMPKODog8rzKTr1w/Q+t4sJAvJUAdFYTaIZxxeKvk17LTpRKVMRDX2x0ox6RaVodWaFyBROsCwBiWicKqmnb0GA1oRHGCFxeWXiPCvBvByueaon0oinc25jXS0IKVTcFBLnUt3qph0aQgvEY0j21LtTsVBnSqEH7ZJN4RKImLUQgHMxMaRp9CgliyzZqWZdIPMkbR3oSHDkEN1YFOYq0Cn4qCWM5duJZl0g+pCDIgLEAsOGRAOAdjU2jn2VBzUUubSrXiTrn/rJ8CwCg4pgjzhi6BRnkY6GEVS+/jEZosR+Ya9nBLxDSqlDdfeeV6Scihd5VEkVcv65Oqp3VXVksuyJBwv8RxFdljjoCAJAU8oBeytiyAotXTqDip5oXb2RWmvktGL8NIH4aWPOeps4RK7qBPHKT1LwrYlrwjgQcgLEHt7jQLfX2HUq8LZEVJBWfrTJt1r0vppfF4FVJWlnlH6fjW+qvScFTxbtgKWhZjMMFZzzwbGEqXgyYDcIkWv34HEWgsXijhP0vrdE1LwJcXORdqxJcxR+D1XWcCQZ+3J0nNq2z64GvixK0BdgmI+p9KgUjewHhLh03blbtvxIgOKidbn7T1HvcQaIaCxC4GC/HgH4CoAyCrznVlmO8OiVQx+fKUOKpWimFKfkR5lc/vpyp1GCUYfutBi56jRzWlORJdYbF7p7wCA2gnoP3r55D4W+WmZhXyITcPqV8KgeiqKCW3VeyqKrzHrBxD4AlsTIYb89K9OlvZNAboZqXOIPl0SxrQVqA5U9mmT7tS2fiSs1D4ngqoIsqw+DQBTANQ2wG4H1L87Oru7LrjzJLN2BVYtE+FPm3SDm3TxC7V9rgmAC9g5Fl1nuXP7bHn39pD2CgBuQaO4Nn+0xOId9S2RiEjCZLyag0If3KKnorgEhF9p1g8BctIyVVg8Zc1H0R4PCDKbdwL63x+ef9oKfbbEok5YsYY6RMFpk+6Usn4a+L9ZK7bCUBb47F/Pzz+9E9A7QtK2JTHtBPQUwF9bO35HQdM7zzLKzxEZH/HOodNRuhUa0ArbE9dF/JetmIrwXZ+dqd4wBahdLVl5bXCtJ8K8wSz5H6hYOXbYZ+MJrE5Q0k6bdCvT+iEAPmCPsZiK8DH21AcA4MLuXthdK0wRwF9eP3a1EvrJiFKTZxtlDUHb2Nayp6N0KwWj2GD7HmCPWNYV5mlm3HjrXPWB7YDa0ZF2qyL6V/FOQH/06NwDZOWGEvP0QZ91jcXXYQvb0ybdyrR+GsQP2H5AfGLccOtc9YGpFrmfuAAAIDQNzX84MfegDRbBkYMem5M++4aCBDg+bdKtGOuncawBmWHxD1sxFeYjPuOGz8xVH9wOmF0x2fiJ9Xt3AnobYL+0prDRwLktq3DDiCKs12QdIu0n1eE7HaVbukimtPv3FQBPYF9h1lUR1EXuEEMfvvWVypEGDZHUgjHNIgCAr6wdvYVBnygoykwo4kmtRBEUC4hjmjXgNPByqJp9M/UutO8twHMsNMuiKiIuiXzus7PVW0JPn97Vow6H7rUAdgGyHVD3Abim4t5346j5Pz7T5jLL+RUR5QrIIfgOqCFPqDsNLCE9S/rpWdQhNFI0gkrscpr2t4nPK+l1C0l6Pok8lzrK4amgKIG4InZGoKdZ1AwLeZDbhdTUrTOVnaERoP5LijorfZVwb+UGX1s7dr0H+nOGvG1UkXKIUCBCjsAZItEI6yaio/hiB+w4LdtuXqX1P0m5c7vuubxJKNIHZ+wCcIbrwgZtCKgmoqoi8ASYF2GC3Oso+vyOk5U7O2mEtF14+3ltB9QtYV8EAPjGusmLa7Dv9xjvEsL5eaJshgAdDsXp6NTVfz3fxVfCSmPSpdn5SaVq0dmFKGKhdtYsk8Q63sEbLzy24fsaS50gzyhSt2cI3/vUdPmxRm2GWwDa0Wd1pYGbODS8ho2FsBswz6ybfEMd9k1W5HILeaMVOkMRNtmW5BPpqOUmEQ8Ra8fHVAzrqdy1VoZGH+f2oQ8MWgAaiK5QJgGrJw6Qu4c18AiRPGygfm6ny0/uAPwG4bd1ePf6ef0/59hiJdbZOuMAAAAASUVORK5CYII="},"snippets/php.json":{"encoding":"utf8","content":"{\n  \"Route\": {\n    \"prefix\": \"lroute\",\n    \"body\": [\n      \"Route::${1:get}('${2:/path}', [${3:Controller}::class, '${4:index}']);\"\n    ],\n    \"description\": \"A route\"\n  },\n  \"Resource route\": {\n    \"prefix\": \"lres\",\n    \"body\": [\n      \"Route::resource('${1:posts}', ${2:PostController}::class);\"\n    ],\n    \"description\": \"A resource route\"\n  },\n  \"Route group\": {\n    \"prefix\": \"lgroup\",\n    \"body\": [\n      \"Route::middleware('${1:auth}')->prefix('${2:admin}')->group(function () {\",\n      \"    $0\",\n      \"});\"\n    ],\n    \"description\": \"A route group\"\n  },\n  \"Controller\": {\n    \"prefix\": \"lctrl\",\n    \"body\": [\n      \"<?php\",\n      \"\",\n      \"namespace App\\\\\\\\Http\\\\\\\\Controllers;\",\n      \"\",\n      \"use Illuminate\\\\\\\\Http\\\\\\\\Request;\",\n      \"\",\n      \"class ${1:Name}Controller extends Controller\",\n      \"{\",\n      \"    public function index()\",\n      \"    {\",\n      \"        $0\",\n      \"    }\",\n      \"}\"\n    ],\n    \"description\": \"A controller\"\n  },\n  \"Model\": {\n    \"prefix\": \"lmodel\",\n    \"body\": [\n      \"<?php\",\n      \"\",\n      \"namespace App\\\\\\\\Models;\",\n      \"\",\n      \"use Illuminate\\\\\\\\Database\\\\\\\\Eloquent\\\\\\\\Model;\",\n      \"\",\n      \"class ${1:Name} extends Model\",\n      \"{\",\n      \"    protected \\\\$fillable = [${2:'name'}];\",\n      \"\",\n      \"    $0\",\n      \"}\"\n    ],\n    \"description\": \"An Eloquent model\"\n  },\n  \"Migration\": {\n    \"prefix\": \"lmig\",\n    \"body\": [\n      \"<?php\",\n      \"\",\n      \"use Illuminate\\\\\\\\Database\\\\\\\\Migrations\\\\\\\\Migration;\",\n      \"use Illuminate\\\\\\\\Database\\\\\\\\Schema\\\\\\\\Blueprint;\",\n      \"use Illuminate\\\\\\\\Support\\\\\\\\Facades\\\\\\\\Schema;\",\n      \"\",\n      \"return new class extends Migration\",\n      \"{\",\n      \"    public function up(): void\",\n      \"    {\",\n      \"        Schema::create('${1:table}', function (Blueprint \\\\$table) {\",\n      \"            \\\\$table->id();\",\n      \"            $0\",\n      \"            \\\\$table->timestamps();\",\n      \"        });\",\n      \"    }\",\n      \"\",\n      \"    public function down(): void\",\n      \"    {\",\n      \"        Schema::dropIfExists('${1:table}');\",\n      \"    }\",\n      \"};\"\n    ],\n    \"description\": \"A migration\"\n  },\n  \"Form request\": {\n    \"prefix\": \"lreq\",\n    \"body\": [\n      \"<?php\",\n      \"\",\n      \"namespace App\\\\\\\\Http\\\\\\\\Requests;\",\n      \"\",\n      \"use Illuminate\\\\\\\\Foundation\\\\\\\\Http\\\\\\\\FormRequest;\",\n      \"\",\n      \"class ${1:Store}Request extends FormRequest\",\n      \"{\",\n      \"    public function authorize(): bool\",\n      \"    {\",\n      \"        return true;\",\n      \"    }\",\n      \"\",\n      \"    public function rules(): array\",\n      \"    {\",\n      \"        return [\",\n      \"            '${2:name}' => ['required', 'string', 'max:255'],\",\n      \"        ];\",\n      \"    }\",\n      \"}\"\n    ],\n    \"description\": \"A form request\"\n  },\n  \"Validate\": {\n    \"prefix\": \"lvalid\",\n    \"body\": [\n      \"\\\\$validated = \\\\$request->validate([\",\n      \"    '${1:name}' => 'required|string|max:255',\",\n      \"]);\"\n    ],\n    \"description\": \"Validate input\"\n  },\n  \"Eloquent where\": {\n    \"prefix\": \"lwhere\",\n    \"body\": [\n      \"${1:Model}::where('${2:column}', ${3:\\\\$value})->${4:get}();\"\n    ],\n    \"description\": \"An Eloquent query\"\n  },\n  \"Relationship hasMany\": {\n    \"prefix\": \"lhasmany\",\n    \"body\": [\n      \"public function ${1:posts}()\",\n      \"{\",\n      \"    return \\\\$this->hasMany(${2:Post}::class);\",\n      \"}\"\n    ],\n    \"description\": \"hasMany\"\n  },\n  \"Relationship belongsTo\": {\n    \"prefix\": \"lbelongs\",\n    \"body\": [\n      \"public function ${1:user}()\",\n      \"{\",\n      \"    return \\\\$this->belongsTo(${2:User}::class);\",\n      \"}\"\n    ],\n    \"description\": \"belongsTo\"\n  },\n  \"Job\": {\n    \"prefix\": \"ljob\",\n    \"body\": [\n      \"<?php\",\n      \"\",\n      \"namespace App\\\\\\\\Jobs;\",\n      \"\",\n      \"use Illuminate\\\\\\\\Contracts\\\\\\\\Queue\\\\\\\\ShouldQueue;\",\n      \"use Illuminate\\\\\\\\Foundation\\\\\\\\Queue\\\\\\\\Queueable;\",\n      \"\",\n      \"class ${1:Name} implements ShouldQueue\",\n      \"{\",\n      \"    use Queueable;\",\n      \"\",\n      \"    public function handle(): void\",\n      \"    {\",\n      \"        $0\",\n      \"    }\",\n      \"}\"\n    ],\n    \"description\": \"A queued job\"\n  },\n  \"Feature test\": {\n    \"prefix\": \"ltest\",\n    \"body\": [\n      \"public function test_${1:it_works}(): void\",\n      \"{\",\n      \"    \\\\$response = \\\\$this->get('${2:/}');\",\n      \"\",\n      \"    \\\\$response->assertStatus(200);\",\n      \"}\"\n    ],\n    \"description\": \"A feature test\"\n  },\n  \"Factory definition\": {\n    \"prefix\": \"lfact\",\n    \"body\": [\n      \"public function definition(): array\",\n      \"{\",\n      \"    return [\",\n      \"        '${1:name}' => fake()->name(),\",\n      \"    ];\",\n      \"}\"\n    ],\n    \"description\": \"A factory definition\"\n  },\n  \"Log\": {\n    \"prefix\": \"llog\",\n    \"body\": [\n      \"Log::${1:info}('${2:message}', [${3}]);\"\n    ],\n    \"description\": \"Log::info\"\n  },\n  \"Config\": {\n    \"prefix\": \"lconf\",\n    \"body\": [\n      \"config('${1:app.name}')\"\n    ],\n    \"description\": \"config()\"\n  },\n  \"Response JSON\": {\n    \"prefix\": \"ljson\",\n    \"body\": [\n      \"return response()->json(['${1:ok}' => true]${2:, 200});\"\n    ],\n    \"description\": \"A JSON response\"\n  },\n  \"Cache remember\": {\n    \"prefix\": \"lcache\",\n    \"body\": [\n      \"Cache::remember('${1:key}', ${2:3600}, fn () => ${3:\\\\$value});\"\n    ],\n    \"description\": \"Cache::remember\"\n  }\n}\n"},"snippets/laravel-blade.json":{"encoding":"utf8","content":"{\n  \"Layout extends\": {\n    \"prefix\": \"bextends\",\n    \"body\": [\n      \"@extends('${1:layouts.app}')\",\n      \"\",\n      \"@section('${2:content}')\",\n      \"    $0\",\n      \"@endsection\"\n    ],\n    \"description\": \"@extends\"\n  },\n  \"Component\": {\n    \"prefix\": \"bcomp\",\n    \"body\": [\n      \"<x-${1:alert} ${2:type}=\\\"${3:info}\\\">\",\n      \"    $0\",\n      \"</x-${1:alert}>\"\n    ],\n    \"description\": \"A Blade component\"\n  },\n  \"Auth\": {\n    \"prefix\": \"bauth\",\n    \"body\": [\n      \"@auth\",\n      \"    $0\",\n      \"@else\",\n      \"    \",\n      \"@endauth\"\n    ],\n    \"description\": \"@auth\"\n  },\n  \"Forelse\": {\n    \"prefix\": \"bforelse\",\n    \"body\": [\n      \"@forelse (${1:\\\\$items} as ${2:\\\\$item})\",\n      \"    $0\",\n      \"@empty\",\n      \"    <p>No items.</p>\",\n      \"@endforelse\"\n    ],\n    \"description\": \"@forelse\"\n  },\n  \"Error message\": {\n    \"prefix\": \"berror\",\n    \"body\": [\n      \"@error('${1:field}')\",\n      \"    <span class=\\\"text-red-600\\\">{{ \\\\$message }}</span>\",\n      \"@enderror\"\n    ],\n    \"description\": \"@error\"\n  },\n  \"Old input\": {\n    \"prefix\": \"bold\",\n    \"body\": [\n      \"value=\\\"{{ old('${1:name}') }}\\\"\"\n    ],\n    \"description\": \"old()\"\n  },\n  \"Method field\": {\n    \"prefix\": \"bmethod\",\n    \"body\": [\n      \"@method('${1:PUT}')\"\n    ],\n    \"description\": \"A spoofed method\"\n  },\n  \"Push stack\": {\n    \"prefix\": \"bpush\",\n    \"body\": [\n      \"@push('${1:scripts}')\",\n      \"    $0\",\n      \"@endpush\"\n    ],\n    \"description\": \"@push\"\n  }\n}\n"},"README.md":{"encoding":"utf8","content":"# Laravel Snippets\n\nRoutes, controllers, Eloquent, migrations, requests, jobs, tests and Blade directives. Install the PHP and Laravel Blade extensions for colors.\n\nType a prefix and press Tab. 26 snippets.\n\n| Language | Prefix | What it inserts |\n| --- | --- | --- |\n| PHP | `lroute` | A route |\n| PHP | `lres` | A resource route |\n| PHP | `lgroup` | A route group |\n| PHP | `lctrl` | A controller |\n| PHP | `lmodel` | An Eloquent model |\n| PHP | `lmig` | A migration |\n| PHP | `lreq` | A form request |\n| PHP | `lvalid` | Validate input |\n| PHP | `lwhere` | An Eloquent query |\n| PHP | `lhasmany` | hasMany |\n| PHP | `lbelongs` | belongsTo |\n| PHP | `ljob` | A queued job |\n| PHP | `ltest` | A feature test |\n| PHP | `lfact` | A factory definition |\n| PHP | `llog` | Log::info |\n| PHP | `lconf` | config() |\n| PHP | `ljson` | A JSON response |\n| PHP | `lcache` | Cache::remember |\n| Laravel Blade | `bextends` | @extends |\n| Laravel Blade | `bcomp` | A Blade component |\n| Laravel Blade | `bauth` | @auth |\n| Laravel Blade | `bforelse` | @forelse |\n| Laravel Blade | `berror` | @error |\n| Laravel Blade | `bold` | old() |\n| Laravel Blade | `bmethod` | A spoofed method |\n| Laravel Blade | `bpush` | @push |\n\nThis extension runs no code and asks for no permissions.\n"}}}