1: <?php
2:
3: if ( ! function_exists('action'))
4: {
5: 6: 7: 8: 9: 10: 11:
12: function action($name, $parameters = array())
13: {
14: return app('url')->action($name, $parameters);
15: }
16: }
17:
18: if ( ! function_exists('app'))
19: {
20: 21: 22: 23: 24: 25:
26: function app($make = null)
27: {
28: if ( ! is_null($make))
29: {
30: return app()->make($make);
31: }
32:
33: return Illuminate\Support\Facades\Facade::getFacadeApplication();
34: }
35: }
36:
37: if ( ! function_exists('app_path'))
38: {
39: 40: 41: 42: 43: 44:
45: function app_path($path = '')
46: {
47: return app('path').($path ? '/'.$path : $path);
48: }
49: }
50:
51: if ( ! function_exists('append_config'))
52: {
53: 54: 55: 56: 57: 58:
59: function append_config(array $array)
60: {
61: $start = 9999;
62:
63: foreach ($array as $key => $value)
64: {
65: if (is_numeric($key))
66: {
67: $start++;
68:
69: $array[$start] = array_pull($array, $key);
70: }
71: }
72:
73: return $array;
74: }
75: }
76:
77: if ( ! function_exists('array_add'))
78: {
79: 80: 81: 82: 83: 84: 85: 86:
87: function array_add($array, $key, $value)
88: {
89: if (is_null(array_get($array, $key)))
90: {
91: array_set($array, $key, $value);
92: }
93:
94: return $array;
95: }
96: }
97:
98: if ( ! function_exists('array_build'))
99: {
100: 101: 102: 103: 104: 105: 106:
107: function array_build($array, Closure $callback)
108: {
109: $results = array();
110:
111: foreach ($array as $key => $value)
112: {
113: list($innerKey, $innerValue) = call_user_func($callback, $key, $value);
114:
115: $results[$innerKey] = $innerValue;
116: }
117:
118: return $results;
119: }
120: }
121:
122: if ( ! function_exists('array_divide'))
123: {
124: 125: 126: 127: 128: 129:
130: function array_divide($array)
131: {
132: return array(array_keys($array), array_values($array));
133: }
134: }
135:
136: if ( ! function_exists('array_dot'))
137: {
138: 139: 140: 141: 142: 143: 144:
145: function array_dot($array, $prepend = '')
146: {
147: $results = array();
148:
149: foreach ($array as $key => $value)
150: {
151: if (is_array($value))
152: {
153: $results = array_merge($results, array_dot($value, $prepend.$key.'.'));
154: }
155: else
156: {
157: $results[$prepend.$key] = $value;
158: }
159: }
160:
161: return $results;
162: }
163: }
164:
165: if ( ! function_exists('array_except'))
166: {
167: 168: 169: 170: 171: 172: 173:
174: function array_except($array, $keys)
175: {
176: return array_diff_key($array, array_flip((array) $keys));
177: }
178: }
179:
180: if ( ! function_exists('array_fetch'))
181: {
182: 183: 184: 185: 186: 187: 188:
189: function array_fetch($array, $key)
190: {
191: foreach (explode('.', $key) as $segment)
192: {
193: $results = array();
194:
195: foreach ($array as $value)
196: {
197: $value = (array) $value;
198:
199: $results[] = $value[$segment];
200: }
201:
202: $array = array_values($results);
203: }
204:
205: return array_values($results);
206: }
207: }
208:
209: if ( ! function_exists('array_first'))
210: {
211: 212: 213: 214: 215: 216: 217: 218:
219: function array_first($array, $callback, $default = null)
220: {
221: foreach ($array as $key => $value)
222: {
223: if (call_user_func($callback, $key, $value)) return $value;
224: }
225:
226: return value($default);
227: }
228: }
229:
230: if ( ! function_exists('array_last'))
231: {
232: 233: 234: 235: 236: 237: 238: 239:
240: function array_last($array, $callback, $default = null)
241: {
242: return array_first(array_reverse($array), $callback, $default);
243: }
244: }
245:
246: if ( ! function_exists('array_flatten'))
247: {
248: 249: 250: 251: 252: 253:
254: function array_flatten($array)
255: {
256: $return = array();
257:
258: array_walk_recursive($array, function($x) use (&$return) { $return[] = $x; });
259:
260: return $return;
261: }
262: }
263:
264: if ( ! function_exists('array_forget'))
265: {
266: 267: 268: 269: 270: 271: 272:
273: function array_forget(&$array, $key)
274: {
275: $keys = explode('.', $key);
276:
277: while (count($keys) > 1)
278: {
279: $key = array_shift($keys);
280:
281: if ( ! isset($array[$key]) || ! is_array($array[$key]))
282: {
283: return;
284: }
285:
286: $array =& $array[$key];
287: }
288:
289: unset($array[array_shift($keys)]);
290: }
291: }
292:
293: if ( ! function_exists('array_get'))
294: {
295: 296: 297: 298: 299: 300: 301: 302:
303: function array_get($array, $key, $default = null)
304: {
305: if (is_null($key)) return $array;
306:
307: if (isset($array[$key])) return $array[$key];
308:
309: foreach (explode('.', $key) as $segment)
310: {
311: if ( ! is_array($array) || ! array_key_exists($segment, $array))
312: {
313: return value($default);
314: }
315:
316: $array = $array[$segment];
317: }
318:
319: return $array;
320: }
321: }
322:
323: if ( ! function_exists('array_only'))
324: {
325: 326: 327: 328: 329: 330: 331:
332: function array_only($array, $keys)
333: {
334: return array_intersect_key($array, array_flip((array) $keys));
335: }
336: }
337:
338: if ( ! function_exists('array_pluck'))
339: {
340: 341: 342: 343: 344: 345: 346: 347:
348: function array_pluck($array, $value, $key = null)
349: {
350: $results = array();
351:
352: foreach ($array as $item)
353: {
354: $itemValue = is_object($item) ? $item->{$value} : $item[$value];
355:
356:
357:
358:
359: if (is_null($key))
360: {
361: $results[] = $itemValue;
362: }
363: else
364: {
365: $itemKey = is_object($item) ? $item->{$key} : $item[$key];
366:
367: $results[$itemKey] = $itemValue;
368: }
369: }
370:
371: return $results;
372: }
373: }
374:
375: if ( ! function_exists('array_pull'))
376: {
377: 378: 379: 380: 381: 382: 383: 384:
385: function array_pull(&$array, $key, $default = null)
386: {
387: $value = array_get($array, $key, $default);
388:
389: array_forget($array, $key);
390:
391: return $value;
392: }
393: }
394:
395: if ( ! function_exists('array_set'))
396: {
397: 398: 399: 400: 401: 402: 403: 404: 405: 406:
407: function array_set(&$array, $key, $value)
408: {
409: if (is_null($key)) return $array = $value;
410:
411: $keys = explode('.', $key);
412:
413: while (count($keys) > 1)
414: {
415: $key = array_shift($keys);
416:
417:
418:
419:
420: if ( ! isset($array[$key]) || ! is_array($array[$key]))
421: {
422: $array[$key] = array();
423: }
424:
425: $array =& $array[$key];
426: }
427:
428: $array[array_shift($keys)] = $value;
429:
430: return $array;
431: }
432: }
433:
434: if ( ! function_exists('array_sort'))
435: {
436: 437: 438: 439: 440: 441: 442:
443: function array_sort($array, Closure $callback)
444: {
445: return Illuminate\Support\Collection::make($array)->sortBy($callback)->all();
446: }
447: }
448:
449: if ( ! function_exists('array_where'))
450: {
451: 452: 453: 454: 455: 456: 457:
458: function array_where($array, Closure $callback)
459: {
460: $filtered = array();
461:
462: foreach ($array as $key => $value)
463: {
464: if (call_user_func($callback, $key, $value)) $filtered[$key] = $value;
465: }
466:
467: return $filtered;
468: }
469: }
470:
471: if ( ! function_exists('asset'))
472: {
473: 474: 475: 476: 477: 478: 479:
480: function asset($path, $secure = null)
481: {
482: return app('url')->asset($path, $secure);
483: }
484: }
485:
486: if ( ! function_exists('base_path'))
487: {
488: 489: 490: 491: 492: 493:
494: function base_path($path = '')
495: {
496: return app()->make('path.base').($path ? '/'.$path : $path);
497: }
498: }
499:
500: if ( ! function_exists('camel_case'))
501: {
502: 503: 504: 505: 506: 507:
508: function camel_case($value)
509: {
510: return Illuminate\Support\Str::camel($value);
511: }
512: }
513:
514: if ( ! function_exists('class_basename'))
515: {
516: 517: 518: 519: 520: 521:
522: function class_basename($class)
523: {
524: $class = is_object($class) ? get_class($class) : $class;
525:
526: return basename(str_replace('\\', '/', $class));
527: }
528: }
529:
530: if ( ! function_exists('csrf_token'))
531: {
532: 533: 534: 535: 536: 537: 538:
539: function csrf_token()
540: {
541: $session = app('session');
542:
543: if (isset($session))
544: {
545: return $session->getToken();
546: }
547: else
548: {
549: throw new RuntimeException("Application session store not set.");
550: }
551: }
552: }
553:
554: if ( ! function_exists('data_get'))
555: {
556: 557: 558: 559: 560: 561: 562: 563:
564: function data_get($target, $key, $default = null)
565: {
566: if (is_null($key)) return $target;
567:
568: foreach (explode('.', $key) as $segment)
569: {
570: if (is_array($target))
571: {
572: if ( ! array_key_exists($segment, $target))
573: {
574: return value($default);
575: }
576:
577: $target = $target[$segment];
578: }
579: elseif (is_object($target))
580: {
581: if ( ! isset($target->{$segment}))
582: {
583: return value($default);
584: }
585:
586: $target = $target->{$segment};
587: }
588: else
589: {
590: return value($default);
591: }
592: }
593:
594: return $target;
595: }
596: }
597:
598: if ( ! function_exists('dd'))
599: {
600: 601: 602: 603: 604: 605:
606: function dd()
607: {
608: array_map(function($x) { var_dump($x); }, func_get_args()); die;
609: }
610: }
611:
612: if ( ! function_exists('e'))
613: {
614: 615: 616: 617: 618: 619:
620: function e($value)
621: {
622: return htmlentities($value, ENT_QUOTES, 'UTF-8', false);
623: }
624: }
625:
626: if ( ! function_exists('ends_with'))
627: {
628: 629: 630: 631: 632: 633: 634:
635: function ends_with($haystack, $needle)
636: {
637: return Illuminate\Support\Str::endsWith($haystack, $needle);
638: }
639: }
640:
641: if ( ! function_exists('head'))
642: {
643: 644: 645: 646: 647: 648:
649: function head($array)
650: {
651: return reset($array);
652: }
653: }
654:
655: if ( ! function_exists('link_to'))
656: {
657: 658: 659: 660: 661: 662: 663: 664: 665:
666: function link_to($url, $title = null, $attributes = array(), $secure = null)
667: {
668: return app('html')->link($url, $title, $attributes, $secure);
669: }
670: }
671:
672: if ( ! function_exists('last'))
673: {
674: 675: 676: 677: 678: 679:
680: function last($array)
681: {
682: return end($array);
683: }
684: }
685:
686: if ( ! function_exists('link_to_asset'))
687: {
688: 689: 690: 691: 692: 693: 694: 695: 696:
697: function link_to_asset($url, $title = null, $attributes = array(), $secure = null)
698: {
699: return app('html')->linkAsset($url, $title, $attributes, $secure);
700: }
701: }
702:
703: if ( ! function_exists('link_to_route'))
704: {
705: 706: 707: 708: 709: 710: 711: 712: 713:
714: function link_to_route($name, $title = null, $parameters = array(), $attributes = array())
715: {
716: return app('html')->linkRoute($name, $title, $parameters, $attributes);
717: }
718: }
719:
720: if ( ! function_exists('link_to_action'))
721: {
722: 723: 724: 725: 726: 727: 728: 729: 730:
731: function link_to_action($action, $title = null, $parameters = array(), $attributes = array())
732: {
733: return app('html')->linkAction($action, $title, $parameters, $attributes);
734: }
735: }
736:
737: if ( ! function_exists('object_get'))
738: {
739: 740: 741: 742: 743: 744: 745: 746:
747: function object_get($object, $key, $default = null)
748: {
749: if (is_null($key) || trim($key) == '') return $object;
750:
751: foreach (explode('.', $key) as $segment)
752: {
753: if ( ! is_object($object) || ! isset($object->{$segment}))
754: {
755: return value($default);
756: }
757:
758: $object = $object->{$segment};
759: }
760:
761: return $object;
762: }
763: }
764:
765: if ( ! function_exists('preg_replace_sub'))
766: {
767: 768: 769: 770: 771: 772: 773: 774:
775: function preg_replace_sub($pattern, &$replacements, $subject)
776: {
777: return preg_replace_callback($pattern, function($match) use (&$replacements)
778: {
779: return array_shift($replacements);
780:
781: }, $subject);
782: }
783: }
784:
785: if ( ! function_exists('public_path'))
786: {
787: 788: 789: 790: 791: 792:
793: function public_path($path = '')
794: {
795: return app()->make('path.public').($path ? '/'.$path : $path);
796: }
797: }
798:
799: if ( ! function_exists('route'))
800: {
801: 802: 803: 804: 805: 806: 807:
808: function route($route, $parameters = array())
809: {
810: return app('url')->route($route, $parameters);
811: }
812: }
813:
814: if ( ! function_exists('secure_asset'))
815: {
816: 817: 818: 819: 820: 821:
822: function secure_asset($path)
823: {
824: return asset($path, true);
825: }
826: }
827:
828: if ( ! function_exists('secure_url'))
829: {
830: 831: 832: 833: 834: 835: 836:
837: function secure_url($path, $parameters = array())
838: {
839: return url($path, $parameters, true);
840: }
841: }
842:
843: if ( ! function_exists('snake_case'))
844: {
845: 846: 847: 848: 849: 850: 851:
852: function snake_case($value, $delimiter = '_')
853: {
854: return Illuminate\Support\Str::snake($value, $delimiter);
855: }
856: }
857:
858: if ( ! function_exists('starts_with'))
859: {
860: 861: 862: 863: 864: 865: 866:
867: function starts_with($haystack, $needle)
868: {
869: return Illuminate\Support\Str::startsWith($haystack, $needle);
870: }
871: }
872:
873: if ( ! function_exists('storage_path'))
874: {
875: 876: 877: 878: 879: 880:
881: function storage_path($path = '')
882: {
883: return app('path.storage').($path ? '/'.$path : $path);
884: }
885: }
886:
887: if ( ! function_exists('str_contains'))
888: {
889: 890: 891: 892: 893: 894: 895:
896: function str_contains($haystack, $needle)
897: {
898: return Illuminate\Support\Str::contains($haystack, $needle);
899: }
900: }
901:
902: if ( ! function_exists('str_finish'))
903: {
904: 905: 906: 907: 908: 909: 910:
911: function str_finish($value, $cap)
912: {
913: return Illuminate\Support\Str::finish($value, $cap);
914: }
915: }
916:
917: if ( ! function_exists('str_is'))
918: {
919: 920: 921: 922: 923: 924: 925:
926: function str_is($pattern, $value)
927: {
928: return Illuminate\Support\Str::is($pattern, $value);
929: }
930: }
931:
932: if ( ! function_exists('str_limit'))
933: {
934: 935: 936: 937: 938: 939: 940: 941:
942: function str_limit($value, $limit = 100, $end = '...')
943: {
944: return Illuminate\Support\Str::limit($value, $limit, $end);
945: }
946: }
947:
948: if ( ! function_exists('str_plural'))
949: {
950: 951: 952: 953: 954: 955: 956:
957: function str_plural($value, $count = 2)
958: {
959: return Illuminate\Support\Str::plural($value, $count);
960: }
961: }
962:
963: if ( ! function_exists('str_random'))
964: {
965: 966: 967: 968: 969: 970: 971: 972:
973: function str_random($length = 16)
974: {
975: return Illuminate\Support\Str::random($length);
976: }
977: }
978:
979: if ( ! function_exists('str_replace_array'))
980: {
981: 982: 983: 984: 985: 986: 987: 988:
989: function str_replace_array($search, array $replace, $subject)
990: {
991: foreach ($replace as $value)
992: {
993: $subject = preg_replace('/'.$search.'/', $value, $subject, 1);
994: }
995:
996: return $subject;
997: }
998: }
999:
1000: if ( ! function_exists('str_singular'))
1001: {
1002: 1003: 1004: 1005: 1006: 1007:
1008: function str_singular($value)
1009: {
1010: return Illuminate\Support\Str::singular($value);
1011: }
1012: }
1013:
1014: if ( ! function_exists('studly_case'))
1015: {
1016: 1017: 1018: 1019: 1020: 1021:
1022: function studly_case($value)
1023: {
1024: return Illuminate\Support\Str::studly($value);
1025: }
1026: }
1027:
1028: if ( ! function_exists('trans'))
1029: {
1030: 1031: 1032: 1033: 1034: 1035: 1036: 1037: 1038:
1039: function trans($id, $parameters = array(), $domain = 'messages', $locale = null)
1040: {
1041: return app('translator')->trans($id, $parameters, $domain, $locale);
1042: }
1043: }
1044:
1045: if ( ! function_exists('trans_choice'))
1046: {
1047: 1048: 1049: 1050: 1051: 1052: 1053: 1054: 1055: 1056:
1057: function trans_choice($id, $number, array $parameters = array(), $domain = 'messages', $locale = null)
1058: {
1059: return app('translator')->transChoice($id, $number, $parameters, $domain, $locale);
1060: }
1061: }
1062:
1063: if ( ! function_exists('url'))
1064: {
1065: 1066: 1067: 1068: 1069: 1070: 1071: 1072:
1073: function url($path = null, $parameters = array(), $secure = null)
1074: {
1075: return app('url')->to($path, $parameters, $secure);
1076: }
1077: }
1078:
1079: if ( ! function_exists('value'))
1080: {
1081: 1082: 1083: 1084: 1085: 1086:
1087: function value($value)
1088: {
1089: return $value instanceof Closure ? $value() : $value;
1090: }
1091: }
1092:
1093: if ( ! function_exists('with'))
1094: {
1095: 1096: 1097: 1098: 1099: 1100:
1101: function with($object)
1102: {
1103: return $object;
1104: }
1105: }
1106: