77
88namespace CodeMommy \AutoloadPHP ;
99
10+ require_once (__DIR__ . '/../private/Path.php ' );
11+
12+ use NotPublic \Path ;
13+
1014/**
1115 * Class Autoload
1216 * @package CodeMommy\AutoloadPHP
@@ -15,52 +19,69 @@ class Autoload
1519{
1620 /**
1721 * Directory
18- *
1922 * @param $directory
2023 * @param $namespaceRoot
2124 */
2225 public static function directory ($ directory , $ namespaceRoot )
2326 {
2427 spl_autoload_register (function ($ className ) use ($ directory , $ namespaceRoot ) {
25- Tool ::replaceSlash ($ directory );
26- Tool ::removeLastSlash ($ directory );
27- Tool ::replaceSlash ($ namespaceRoot );
28- Tool ::removeFirstSlash ($ namespaceRoot );
29- Tool ::removeLastSlash ($ namespaceRoot );
30- Tool ::replaceSlash ($ className );
31- Tool ::removeFirstSlash ($ className );
32- Tool ::removeLastSlash ($ className );
28+ Path ::replaceSlash ($ directory );
29+ Path ::removeLastSlash ($ directory );
30+ Path ::replaceSlash ($ namespaceRoot );
31+ Path ::removeFirstSlash ($ namespaceRoot );
32+ Path ::removeLastSlash ($ namespaceRoot );
33+ Path ::replaceSlash ($ className );
34+ Path ::removeFirstSlash ($ className );
35+ Path ::removeLastSlash ($ className );
3336 if (substr ($ className , 0 , strlen ($ namespaceRoot )) == $ namespaceRoot ) {
3437 $ className = substr ($ className , strlen ($ namespaceRoot ));
35- Tool ::removeFirstSlash ($ className );
38+ Path ::removeFirstSlash ($ className );
3639 }
37- $ file = $ directory . '/ ' . $ className . '.php ' ;
38- if (is_file ($ file )) {
39- require_once ($ file );
40+ $ extensionList = array ('php ' , 'class.php ' );
41+ foreach ($ extensionList as $ extension ) {
42+ $ file = $ directory . '/ ' . $ className . '. ' . $ extension ;
43+ if (is_file ($ file )) {
44+ require_once ($ file );
45+ }
4046 }
4147 });
4248 }
4349
4450 /**
4551 * File
46- *
4752 * @param $file
4853 * @param $className
4954 */
5055 public static function file ($ file , $ className )
5156 {
5257 spl_autoload_register (function ($ name ) use ($ file , $ className ) {
53- Tool ::replaceSlash ($ className );
54- Tool ::removeFirstSlash ($ className );
55- Tool ::removeLastSlash ($ className );
56- Tool ::replaceSlash ($ name );
57- Tool ::removeFirstSlash ($ name );
58- Tool ::removeLastSlash ($ name );
58+ Path ::replaceSlash ($ className );
59+ Path ::removeFirstSlash ($ className );
60+ Path ::removeLastSlash ($ className );
61+ Path ::replaceSlash ($ name );
62+ Path ::removeFirstSlash ($ name );
63+ Path ::removeLastSlash ($ name );
5964 if ($ className == $ name ) {
6065 if (is_file ($ file )) {
6166 require_once ($ file );
6267 }
6368 }
6469 });
6570 }
71+
72+ /**
73+ * Basic
74+ * @param $file
75+ * @param bool $isOnce
76+ */
77+ public static function basic ($ file , $ isOnce = true )
78+ {
79+ if (is_file ($ file )) {
80+ if ($ isOnce ) {
81+ require_once ($ file );
82+ } else {
83+ require ($ file );
84+ }
85+ }
86+ }
6687}
0 commit comments