回答編集履歴
2
具体例を追加
test
CHANGED
@@ -5,6 +5,26 @@
|
|
5
5
|
- [PHP Manual - クラスのオートローディング](http://php.net/manual/ja/language.oop5.autoload.php)
|
6
6
|
|
7
7
|
- [Qiita - PHP で、spl_autoload_register を使って、require_once 地獄を脱出しよう](http://qiita.com/misogi@github/items/8d02f2eac9a91b4e6215)
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
```php
|
12
|
+
|
13
|
+
// 例
|
14
|
+
|
15
|
+
spl_autoload_register(function ($classname) {
|
16
|
+
|
17
|
+
$path = __DIR__ . '/' . $classname . '.php';
|
18
|
+
|
19
|
+
if (file_exists($path)) {
|
20
|
+
|
21
|
+
require $path;
|
22
|
+
|
23
|
+
}
|
24
|
+
|
25
|
+
});
|
26
|
+
|
27
|
+
```
|
8
28
|
|
9
29
|
|
10
30
|
|
1
補足
test
CHANGED
@@ -12,10 +12,56 @@
|
|
12
12
|
|
13
13
|
|
14
14
|
|
15
|
+
- [PHP開発でComposerを使わないなんてありえない!基礎編](http://qiita.com/niisan-tokyo/items/8cccec88d45f38171c94#create-project)
|
16
|
+
|
15
17
|
- [Qiita - PSR-4 autoloader (日本語訳)](http://qiita.com/inouet/items/0208237629496070bbd4)
|
16
18
|
|
17
19
|
- [ngの日記 - Composer が PSR-4 に対応していた](http://ngyuki.hatenablog.com/entry/2014/01/09/203427)
|
18
20
|
|
19
21
|
|
20
22
|
|
21
|
-
|
23
|
+
この仕組みは,他者が提供しているライブラリを`composer install`でインストールした場合だけでなく,自分のプロジェクト内のファイルに対しても適用が可能です.`composer install`あるいは`composer update`のタイミングで,自分のプロジェクト内の各クラスに対するオートローダが定義されます.
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
なお大前提として,ディレクトリ構成からして変えたほうがいいかと思います.**HTTPでアクセスする必要のないファイルは公開ディレクトリの外に起きましょう.**例えば以下の例では`www`を公開ディレクトリとし,`http://example.com/archive.php`が`project/www/archive.php`に対応することを想定しています.
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
```html
|
32
|
+
|
33
|
+
project
|
34
|
+
|
35
|
+
|--.git
|
36
|
+
|
37
|
+
|--composer.json
|
38
|
+
|
39
|
+
|--vendor
|
40
|
+
|
41
|
+
| `--autoload.php
|
42
|
+
|
43
|
+
|--class
|
44
|
+
|
45
|
+
| |--controller
|
46
|
+
|
47
|
+
| |--model
|
48
|
+
|
49
|
+
| `--view
|
50
|
+
|
51
|
+
`--www
|
52
|
+
|
53
|
+
|--css
|
54
|
+
|
55
|
+
|--img
|
56
|
+
|
57
|
+
|--js
|
58
|
+
|
59
|
+
|--archive.php
|
60
|
+
|
61
|
+
|--home.php
|
62
|
+
|
63
|
+
|--login.php
|
64
|
+
|
65
|
+
`--setting.php
|
66
|
+
|
67
|
+
```
|